#!/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
ファイルに実際に何が含まれているかを確認します。