3

私のシバンが無視されているようです。作成したシェル スクリプトを実行しようとすると、次のエラーが表示されます。

% ls -alh /usr/sh
-r-xr-xr-x  1 root  1011   139k Sep 16 01:29 sh
% ls -alh foo.sh
-rwxr-xr-x  1 george george    21B Sep 16 00:59 foo.sh
% cat ./foo.sh
#!/usr/sh
echo "lol"
% ./foo.sh
./foo.sh: Command not found.
% sh ./foo.sh
lol

はい、 /usr/sh にあります。そこに入れました。

しかし、ご覧のとおりsh、実行を指示すると問題なく動作します。何を与える?

該当するとは思いません$PATHが、この問題を解決しようとしている検索結果の一部で、人々はそれを求めています:

% echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin
4

4 に答える 4

1

スクリプト ファイルを実行可能にして、再試行する必要があります。

chmod +x foo.sh
于 2013-09-15T22:28:08.743 に答える
0

次のようなものが必要です。

% cat ./foo.sh
#!/bin/sh
echo "lol"
% chmod +x ./foo.sh
% ls -l ./foo.sh
-rwxr-xr-x  1 deed  deed  0 16 sep 00:33 ./foo.sh

/bin/shのパスと実行可能なビットに注意してください。

于 2013-09-15T22:36:52.283 に答える