텍스트 파일의 내용을 반환하는 bash 스크립트를 얻고 싶습니다 .
#!/bin/bash
cat $1
문제는..파일 경로가 이 bash 스크립트에 입력되지 않은 경우...어떻게 자동으로 닫힐 것인가입니다.
일반 명령줄을 통해... cat 명령에 파일 경로가 지정되지 않으면 .. 중단되지 않습니다.
거의 뭔가를 기다리는 것 같은...
답변1
#!/bin/bash
if [[ "$#" -ne 1 ]]; then
echo "Usage: $0 [INPUT FILE]" 1>&2
exit 1
fi
cat "$1"
답변2
명령에 또 다른 문제가 있습니다. 파일 이름에 공백이 있으면 어떻게 됩니까?
#!/bin/bash
cat "$1"
인용하지 말아야 할 특별한 이유가 없다면 항상 인용하십시오. 그리고 cat ""
그것은 멈추지 않을 것입니다. 대신 "해당 파일이나 디렉터리가 없습니다."와 같은 오류 메시지가 생성됩니다.
답변3
cat
STDIN
파일 이름을 제공하면 무시됩니다. 이 경우 연결하는 것이 효과적인 솔루션이 될 STDIN
것 입니다./dev/null
$ cat test.sh
#!/bin/bash
cat $1 < /dev/null
$ ./test.sh test.sh
#!/bin/bash
cat $1 < /dev/null
$ ./test.sh
$
이 방법의 단점은 0
파일 이름이 제공되지 않으면 반환된다는 것입니다. 이 문제를 해결할 수 있는 방법이 없습니다. 지정된 파일을 열지 못하면 여전히 실패가 반환됩니다.
답변4
파일이 존재하는 경우에만 파일 내용을 표시합니다.
#!/bin/bash
[ -f "$1" ] && cat "$1"
이 스크립트는 첫 번째 인수가 원하는 파일이라고 가정합니다.cat