1. ホーム
  2. linux

[解決済み] Bashスクリプトが空行で "Command Not Found "と表示される。

2022-07-29 13:48:02

質問

を使ってスクリプトを実行するたびに bash scriptname.sh を使ってスクリプトを実行すると Command Not found と表示され、その後にスクリプトの結果が表示されます。

スクリプトは動作しますが、常に Command Not Found ステートメントが空行ごとに画面に表示されます。各空白行は、コマンドが見つからないという結果になります。

スクリプトを実行しているのは /var フォルダーから実行しています。

以下はスクリプトです。

#!/bin/bash

echo Hello World

と入力して実行しています。

bash testscript.sh

なぜこのようなことが起こるのでしょうか?

どのように解決するのですか?

最初の行を確認してください。

#!/bin/bash

bashのパスがない場合は入力してください。 /bin/bash


実行してみてください。

dos2unix script.sh

これは改行コードなどを Windows から unix 形式に変換するものです。 \r\n (CR+LF) から \n (LF) .

の詳細については dos2unix コマンドの詳細 (マニュアル)


ファイルが dos/Win 形式かどうかを見分けるもう一つの方法です。

cat scriptname.sh | sed 's/\r/<CR>/'

出力はこのようになります。

#!/bin/sh<CR>
<CR>
echo Hello World<CR>
<CR>

これは、ファイル全体のテキストを <CR> が表示されます。 \r の文字が表示されます。