편집하다:
내에서 작동하는 것 같습니다 bash
. 문제가와 관련이있는 것 같습니다 zsh
. 이 문제를 게시하기에 더 좋은 사이트가 있으면 알려주세요.
일련의 디렉토리를 만드는 간단한 스크립트를 작성 중입니다. 사용자가 확인하기 전에 확인을 원합니다. 다음을 기본으로 사용하고 있지만 bash 함수 내에서 실행할 수없는 것 같습니다. 함수 외부에 넣으면 정상적으로 작동합니다. 다음은 격리 된 예입니다.
read.sh
#!/bin/bash
test() {
read -p "Here be dragons. Continue?" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]
then
echo "You asked for it..."
fi
}
이 SO 게시물의 코드 .
파일을 소싱하거나 test
다음과 같은 오류가 발생 read:1: -p: no coprocess
합니다. 내가 그것을 배치 할 때 동일한 출력.bashrc
편집 : :
hen
- 함수가 구성 파일에 있기를 원하므로 모든 디렉토리 (이상적으로는 .bashrc 또는 .zshrc)에서 호출 할 수 있습니다
- 첫 번째 주석 행의 형식을 수정했습니다. 문제가 여전히 존재합니다
zsh
- Bash 버전은 3.2이지만 문제가 bash가 아닌 zsh에 있음을 알 수 있도록 도와주었습니다.
zsh
있지만 bash 스크립트와 충돌 할 것이라고 생각하지 않았습니다. 다시 작성하여 귀하의 질문에 답변했습니다. 올바른 방향으로 나를 가리켜 주셔서 감사합니다!
./read.sh
. 다른 방법으로 실행하거나 시작 스크립트에 넣을 필요는 없습니다. 그리고`zsh ./read.sh '를 사용하여 zsh에서 실행하려면 #으로 시작하는 줄은 무시됩니다. zsh를 사용할 때 bash를 사용한다는 인상을주기 때문에 혼동됩니다.)
#! /bin/bash
shebang 뒤에 공간이 있습니까? 나는 그것들이 허용되지 않는다고 생각 했습니까? 3) '#! / usr / bin / env bash'가 더 좋습니다. 4) 어떤 배쉬 버전? (FreeBSD에서 bash 4.1.10으로 테스트