읽기 [중복] 사용 시 "코프로세스 없음" 오류

읽기 [중복] 사용 시 "코프로세스 없음" 오류

이라는 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가정 합니다.ksh93read -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및에서 사용자 정의 프롬프트를 사용 하려면 :zshksh93

read username"?What's you name? " 
printf 'Hello %s!\n' "$username"

관련 정보