파이프 명령을 사용한 후 스크립트가 test.sh
작동하지 않습니다. 결과는 아무것도 표시되지 않습니다. 왜?
#!/bin/bash
fun=$( echo $1 )
echo "$fun"
명령은 다음과 같습니다.
$ echo 1 | ./test.sh
답변1
스틸드라이버 말이 맞다. 당신이 해야 할 일은:
표준 입력을 읽으려면 다음 명령을 사용하십시오.
#!/bin/bash fun=$(cat) echo "$fun"
또는 간단하게:
#!/bin/bash cat
또는 표준 입력을 위치 인수로 변환하려면 다음을 사용하십시오.
xargs
:$ echo 1 | xargs ./test.sh
또는 스크립트를 사용해야 하는 방식(코딩된 대로)으로 사용하십시오.
./test.sh 1
답변2
대신 이렇게 하세요
#!/bin/bash
echo "$@"
그럼 이렇게 실행해 보세요
./test.sh 1
echo 됩니다 1
. 너무 복잡하게 만들지 마세요. 게다가 그냥 사용해 보는 건 어떨까요 echo
? 이 스크립트를 사용할 이유가 없습니다.