🖥

シェルスクリプトで改行する時はバックスラッシュの後に何も入れてはならぬ ( command not found )

2023/08/26に公開

スクリプトの例

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オープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2018-07-20

Discussion