답변:
명령 대체 .
./Myscript.sh "$(cat text.txt)"
공정 대체
./Myscript.sh <(cat text.txt)
예를 들어 https://www.gnu.org/software/bash/manual/bash.html#Process-Substitution을 참조 하십시오.
@ bac0n을 완성하기 위해 IMHO가 질문에 올바르게 대답하는 유일한 방법은 다음과 같습니다. 파이프 인수를 스크립트 인수 목록 앞에 추가하는 짧은 라이너가 있습니다.
#!/bin/bash
args=$@
[[ -p /dev/stdin ]] && { mapfile -t; set -- "${MAPFILE[@]}"; set -- $@ $args; }
echo $@
사용 예 :
$ ./script.sh arg1 arg2 arg3
> arg1 arg2 arg3
$ echo "piped1 piped2 piped3" | ./script.sh
> piped1 piped2 piped3
$ echo "piped1 piped2 piped3" | ./script.sh arg1 arg2 arg3
> piped1 piped2 piped3 arg1 arg2 arg3