🖥
シェルスクリプトで改行する時はバックスラッシュの後に何も入れてはならぬ ( command not found )
スクリプトの例
example.sh
#!/bin/bash
echo A \
B \
C
echo D \
E \
F
結果
$ bash example.sh
A B C
D E
example.sh: line 7: F: command not found
command not found !!! Oooooooooooops!!!
何が悪いの?
E の行のバックスラッシュの後ろにスペースがある。
理由
おそらく
- Eの行は、改行をエスケープするのではなく、スペースをエスケープしている
- echo コマンドはそこで終了する
- シェルのインタープリタは次の行に進み、コマンドを実行しようとする
-
F
なんていうコマンドは存在しないのでエラーで終わる
環境
- bash 3.2
参考
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
公開日時
2018-07-20
Discussion