そのようなファイルまたはディレクトリはありません Linux シェル スクリプト

そのようなファイルまたはディレクトリはありません Linux シェル スクリプト
#!/bin/bash
mysql -uroot -pwelcome1 < /home/sai/first.sql

echo "The program has completed"

シェル スクリプトから SQL ファイルを呼び出そうとしています。スクリプトを として実行していますbash run.shが、directoryfirst.sql は存在しないというメッセージが表示されます。ただし、そのコマンドを として個別に実行すると動作しますmysql -uroot -pwelcome1 < /home/sai/first.sql。別の書き方はありますか?

答え1

これはおそらく行末の問題です。vimrun.shで開いて、set fileformat=unix+表示された場合 (ファイルが変更されたことを示します)、それはファイルに DOS の行末があり、Bash が正しく解釈できないことを意味します。保存して終了すると、スクリプトが動作するはずです。

将来、明らかに何かおかしいことが起こっている場合は、次のようなコマンドを使用してください。od -ctx1 run.shファイルに実際に何が含まれているかを確認します。

関連情報