シェルスクリプトでコードが長くなって見にくいと困った事はありませんか?
プログラミングで改行など入れてコードを綺麗に書く事は、後から見た自分や引き継ぐ人が分かりやすくなる為、重要です。
コードが長くなった場合には改行して綺麗に書きたいですよね。
という事で今回はシェルスクリプトで改行する方法を記事にしました。
windowsのプロンプトで使用できるbatやpythonやphpを使用して、業務効率化やWebサイトを作成しております。javaやシェルスクリプトなど、様々なプログラミングを行った実績ありの筆者です。
この記事を読む事でシェルスクリプトの改行する方法がわかり、コードを最低限綺麗に書くことができるようになります!
シェルスクリプトで改行を入れる方法
シェルスクリプトで改行を入れるやり方は「\」をいれるだけです。
「\」は直後の改行を無視してくれます。
シェルスクリプトで改行を入れて実行し、結果を見てみる
以下のシェルスクリプトを作成して見ましょう。
#!/bin/bash
echo \
xxx
echoは文字を表示するコマンドです。
このスクリプトを実行してみましょう!
[root@localhost workspace]# bash newline.sh
xxx
改行していますが「\」がありその後に改行したので、きちんと「xxx」が表示されています。
シェルスクリプトで改行コードを入れずに実行し、結果を見てみる
では今度は「\」を入れずにコードを変えて実行してみましょう!
以下のシェルスクリプトに変更して実行してみましょう!
#!/bin/bash
echo
xxx
結果は以下となりました。
[root@localhost workspace]# bash newline.sh
newline.sh: 行 4: xxx: コマンドが見つかりません
シェルスクリプトの中で改行してしまうと、そこでコマンドが終わってしまいます。
改行がコマンドを切る意味を持っているからです。
echoコマンドで空白を表示して、次の行の「xxx」をコマンドと認識してエラーになっています。
シェルスクリプトでコードを改行したい場合は、「\」を使用して改行しましょう!
シェルスクリプトでの改行が失敗する例
「\」は次の改行を無視してくれます。
「\」の後に空白などが入っている場合、エラーが起こってしまいます。
以下のコードは成功した時のコードと同じに見えますが、「\」の後ろに半角スペースが入っています。
#!/bin/bash
echo \
xxx
「\」の後にスペースが入っているシェルスクリプトを実行してみましょう!結果はエラーになりました。
[root@localhost workspace]# bash newline.sh
newline.sh: 行 4: xxx: コマンドが見つかりません
もし改行したのにエラーがが出る場合は、「\」の後ろですぐ改行しているかを確認して見て下さい。
シェルスクリプトで改行は1つしか入れないのか
改行はコマンド中に何度でも使用できます。
以下のシェルスクリプトを作成して実行してみましょう!
#!/bin/bash
echo \
xxx \
yyy \
zzz
改行を複数入れてシェルスクリプトを実行した結果は以下となりました。
[root@localhost workspace]# bash newline.sh
xxx yyy zzz
きちんと表示されています。
シェルスクリプトでの改行をクォーテーションで使用してみる
では改行コードをクォーテーションやダブルクォーテーションの中に含めてみましょう。
改行コードをクォーテーションに入れて実行してみた
以下のシェルスクリプトを作成して、実行してみましょう!
#!/bin/bash
echo 'test \
xxx'
改行コードをクォーテーションに入れて実行した結果は以下となりました。
[root@localhost workspace]# bash newline.sh
test \
xxx
「\」もそのまま表示されていますし、改行されて表示されています。
改行コードをダブルクォーテーションに入れて実行してみた
以下のシェルスクリプトを作成して、実行してみましょう!
#!/bin/bash
echo "test \
xxx"
改行コードをダブルクォーテーションに入れて実行してみた結果は以下となりました。
[root@localhost workspace]# bash newline.sh
test xxx
想定通り「test」と「xxx」が表示されています。
シェルスクリプトでの改行を使用した見やすいコードとは
今回のコード中の改行などを使用して、見やすいシェルスクリプトを作成するには以下に気を付けて下さい。
- 塊を意識する
- わかりやすい箇所で改行する
塊を意識する
一つのコマンドが終われば空白行など入れて塊を意識します。
また今回の改行を使用して、1行が長くならないようにすれば綺麗に見えてきます。
#!/bin/bash
echo test \
xxx
echo "test \
yyy"
echo aaa bbb ccc \
ddd eee fff ggg hhh \
iii jjj kkk
echo '次のコマンドはココです'
わかりやすい箇所で改行コードを使用する
改行する時はわかりやすい箇所で改行しましょう!
以下のシェルスクリプトは1つ目のコードはわかりにくいです。
2つ目のコードの方がわかりやすいです。
#!/bin/bash
echo 'シェルスクリプト学'\
'習開始します シェルスクリ'\
'プト学習中です シェルスク'\
'リプト学習終了します'
echo 'シェルスクリプト学習開始します' \
'シェルスクリプト学習中です' \
'シェルスクリプト学習終了します'
このシェルスクリプトを実行すると結果は同じです。
[root@localhost workspace]# bash newline.sh
シェルスクリプト学習開始します シェルスクリプト学習中です シェルスクリプト学習終了します
シェルスクリプト学習開始します シェルスクリプト学習中です シェルスクリプト学習終了します
コードのわかりやすさは2つ目の方が良いです。
シェルスクリプトで改行を入れる方法!のまとめ
シェルスクリプトで改行を入れるやり方は「\」をいれるだけです。
#!/bin/bash
echo \
xxx
「\」の後にすぐ改行がないとエラーになります。(空白などがあればエラーとなる)
1つのコマンドで何度でも改行する事が出来ます。
“(ダブルクォーテーション)に「\」を含めても同じ結果になる。