다음 스크립트가 있습니다.
1 #!/usr/bin/env sh
2 #calculate number of tests we will run
3 lines="$(cat /etc/crontabs/root|wc -l)"
4 tests="$(($lines - 2))"
5
6 echo "1..$tests"
7 counter=1
8 etc.... does other stuff
첫 번째 줄에서는 시작하기 위해 "sh"를 입력할 필요가 없는 방식으로 코딩하려고 합니다. 이전에는 hashbang이 다음과 같았습니다.
#!/bin/sh
코드는 작동하지만 실행하는 데 사용할 exe를 알려 주어야 합니다.
이제 사용자가 어떤 유형의 스크립트인지 알 필요가 없도록 변경해 보고 싶습니다. 스크립트를 실행하려고 하면 다음 오류가 발생하기 때문에 뭔가 잘못하고 있는 것 같습니다.
lab-1:/tmp# crontab_test
-ash: crontab_test: not found
내가 어디에서 길을 잃었는지 말해줄 수 있나요?
답변1
해시뱅 경로가 좋아 보입니다.
스크립트가 /tmp
디렉토리에 있습니까?
이 /tmp
디렉터리는 (일반적으로) 디렉터리에 없으므로 $PATH
명령줄에서 지정해야 합니다. ./
현재 디렉터리를 사용할 수 있습니다 .
./crontab_test
일부 시스템에는 현재 디렉터리가 .
에 있지만 $PATH
이는 보안 관점에서 약간 의심스러운 것으로 간주됩니다.