次のスクリプトがあります。
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
、これはセキュリティの観点からやや疑わしいと見なされます。