Android 開発を行う場合、test.sh を system/bin/test.sh に事前に準備し、このスクリプトをシリアル ポートで実行すると、次のようなエラーが発生します。
console:/ # ./system/bin/test.sh
/system/bin/sh: ./system/bin/test.sh: No such file or directory
console:/system/bin # sh startsoftdetector.sh
inaccessible or not found
test.sh[23]: syntax error: unexpected 'fi'
このファイルは存在しますが、No such file or directory
、 というプロンプトが表示されます
sh スクリプト構文は問題ありませんが、syntax error: unexpected 'fi'
、 というプロンプトが表示されます。
Cat -v ./system/bin/test.sh ファイルをチェックすると、各行の末尾に ^M があり、形式の問題を示していることがわかります。
cat -v の説明:
-v、--show-nonprinting は、LFD と TAB を除く ^ および M- 表記を使用します
関連改行は、オペレーティング システムやエディタによって異なります。
このスクリプトは Windows で編集されてから Linux サーバーにコピーされたため、形式に問題がありました。
解決:
- 1. 各行の末尾にある ^M を手動で編集して削除します。
- 2. dos2unix system/bin/test.sh コマンドを使用して、ファイル形式を変更します。
^M を削除する方法の詳細Linux で ^M を削除する方法 - CSDN ブログ