特殊文字のエスケープ
いくつかの記号について,特殊な意味を持っているものがあります。
” $ @ & ‘ ( ) ^ | [ ] { } ; * ? < > ` \ スペース
改行,タブといったエスケープ・シーケンス
がそうです。
これらを使用する時には、シングルクォーテーションやダブルクォーテーションで囲ったり、特殊文字の前にバックスラッシュを付けたりします。
他に目に見えない文字、(改行など)にはエスケープシーケンスを利用します。
以下のようなものがあります。
\b バック・スペース
\n 改行
コマンドの置換
コマンドラインの一部または全部を、コマンドラインの出力で置き換え出来ます。
方法1 $(コマンド)
(例)
user@Dimension-2400C:~$ echo Data: $(date)
Data: 2017年 5月 27日 土曜日 20:28:58 JST
方法2 `コマンド` #バッククォーテーションで囲む
(例)
user@Dimension-2400C:~$ echo Data: `date`
Data: 2017年 5月 27日 土曜日 20:29:16 JST
コマンドの連続実行
以下のように、;(セミコロン)、&&、||を使いコマンドを連続実行することが出来ます。
コマンド1 ; コマンド2 ・・・・・・コマンド1の結果にかかわらずコマンド2が実行されます。
コマンド1 && コマンド2 ・・・・・コマンド1が成功した場合のみコマンド2が実行されます。
コマンド1 || コマンド2 ・・・・・コマンド1が失敗した場合のみコマンド2が実行されます。
&&や||を使って、条件分岐にも使用できるのがわかります。
(例)
user@Dimension-2400C:~$ cd test
user@Dimension-2400C:~/test$ ls
magofile1 magofile2 siftjis.txt test
user@Dimension-2400C:~/test$ touch arufairu
user@Dimension-2400C:~/test$ test -f arufairu && echo “arufairuはあります。”
arufairuはあります。
user@Dimension-2400C:~/test$ test -f naifairu || echo “naifairuはありません。”
naifairuはありません。
user@Dimension-2400C:~/test$
上の例では、testコマンドを使っています。testコマンドは、非常に有用なコマンドなので別途解説しますが、今回は、オプション -fを使ってファイルの存在チェックを行っています。
test -f ファイルパスでファイルが存在すれば、0(true)(成功)、存在しなければ1(false)(失敗)を返します。