이라는 bash 스크립트가 있습니다 reader
. 사용자 입력을 읽습니다.
#!/bin/bash
read -p "What is your name?" username
echo "Hello, ${username}"
스크립트를 실행하면(편집: zsh 쉘에서) source reader
오류가 발생합니다 reader:read:2: -p: no coprocess
. 실행하면 이 오류가 발생하지 않습니다 ./reader
.
다른 read
옵션에서는 이 오류가 발생하지 않습니다. 예를 들어 다음과 같이 할 수 있습니다.
#/bin/bash
echo -n "What is your name?"
read username
echo "Hello, ${username}"
공동 프로세스 없음 오류는 어디에서 발생합니까? 무슨 뜻이에요? 나는 무엇을 해야 합니까?
답변1
를 사용할 때 파일을 읽는 것은 행에 언급된 쉘 source
이 아니라 현재 쉘입니다 . #!
나는 귀하의 쉘이 코프로세스에서 데이터를 읽는 데 사용된다고 zsh
가정 합니다.ksh93
read -p
한 가지 예 ksh93
:
cat /etc/passwd |&
while IFS=":" read -p user rest; do
printf 'There is a user called %s\n' "$user"
done
달리기당신의스크립트를 사용하거나 인터프리터를 명시적으로 언급합니다.
$ bash script.sh
...또는 스크립트를 실행 가능하게 만들고 실행합니다.
$ chmod +x script.sh
$ ./script.sh
read
및에서 사용자 정의 프롬프트를 사용 하려면 :zsh
ksh93
read username"?What's you name? "
printf 'Hello %s!\n' "$username"