-1

bash を使用してスクリプト ファイルを実行しようとしましたが、エラーが表示されました

bash-3.2$ example.sh : コマンドが見つかりません

ls -l example.sh も試しました

実行可能ではないことがわかったので、使用しました sudo chmod 777 example.sh

もう一度実行してみましたが、同じエラーが発生しました。lsを使用して、ファイルと同じフォルダーにいることを再確認しました。しかし、それでもスクリプト ファイルを実行できません。

最終的にダミーのスクリプトファイルを作って実行してみたところ、同じエラーが見つかりました

BASHに問題があると思います。問題は何ですか?

私はredhatに取り組んでいます.bashはすでにシステムにインストールされています

私はLinuxの初心者なので、助けていただければ幸いです

4

4 に答える 4

3

.(現在のディレクトリ) はおそらくパス上にありません。./example.shまたはを試してくださいbash example.sh.環境変数に追加することもできますPATHが、それは一般的に嫌われています。

于 2012-08-01T04:59:00.283 に答える
3

でコマンドを bash 検索します$PATH。どうやら現在のディレクトリ は.、あなたの にありません$PATH。(これは良いことです。.あなたの中にあること$PATHは安全ではありません。)

ディレクトリ名を指定する必要があります。次のように入力します。

./example.sh

ちなみに、やっている:

sudo chmod 777 example.sh

2種類のやり過ぎです。まず、使用する必要はありませんsudo; 実際に必要な場合にsudo のみ使用してください。おそらくあなたの個人アカウントがファイルを所有しているので、chmod直接使用できます。

第二に、777寛大すぎる。これにより、システム上のすべてのユーザーが の読み取り、実行、または変更 example.shを行うことができます。(システム上にあなたが一人しかいない場合は、それほど問題にならないかもしれませんが、それでも悪い習慣です。) 通常755、実行可能にする必要があるディレクトリとファイル、および実行可能にする必要の644ないファイルには、 を使用する必要があります。実行可能。

または単に使用する

chmod +x example.sh

実行パーミッションを設定します (umask はパーミッションの設定が緩すぎるのを防ぎます)。

于 2012-08-01T05:01:20.240 に答える
1

あなたの bash PATH にはおそらく含まれていません。次.のように入力して実行してみてください。

./example.sh

コマンドを入力すると、シェルはパスを検索してコマンドを見つけようとします。現在のディレクトリ (例: .) がパスの一部でない場合、実行しようとしているスクリプトは見つかりません。このコマンドがある場所へのパスを明示的に指定する必要があります。また、現在のディレクトリに./あるため、コマンドの前に追加するだけです。

于 2012-08-01T04:59:08.023 に答える
0

最初にbashパスを確認して、bashの使用パスを確認します。

 which bash

「/bin/ bash」を取得した場合は、

#!/bin/bash 
...
...

または、bashスクリプトの最初の行のパスは何でも

于 2012-08-01T08:13:09.753 に答える