Webエンジニアのメモ帳

技術的な話を中心に書いています。

【シェルスクリプト】特殊文字を使うコマンドまとめ

特殊文字を使うコマンドをまとめました。(ネットで調べるのが難しいため)

自分用のメモなので、特に内容的なまとまりはありません。

変数値の置換

${foo:-bar} は、変数fooがセットせれていなければbarを、セットされていればfooを返します。

$ echo ${var:-1}
1
$ var=2
$ echo ${var:-1}
2

ちなみに ${foo:=bar} とした場合は、fooにbarがセットされます。

$ echo ${var:=3}
3
$ echo $var
3

コマンドの実行結果を引数に入れる

``を使う方法と、$()を使う方法があります。

$ var=`expr 1 + 2`
$ echo $var
3
$ var2=$(expr 1 + 2)
$ echo $var2
3

testコマンド

[ -(オプション) (引数) ]で使えます。 様々なオプションがあり、たとえばeはファイルが存在すればtrueを返します。

# fileというファイルはない状態で始める
$ if [ -e file ]; then echo "aaa"; fi

# fileというファイルを作って同じコマンドを実行
$ touch file
$ if [ -e file ]; then echo "aaa"; fi
aaa

三項演算子

以下のように書くことができます。

# fileは存在するがfile2は存在しない状態で実行
$ [ -e file ] && echo a || echo b
a
$ [ -e file2 ] && echo a || echo b
b

コマンドを続けて実行する

&& か ; でつなぐことができます。

$ pwd && pwd
(ディレクトリ名)
(ディレクトリ名)
$ pwd ; pwd
(ディレクトリ名)
(ディレクトリ名)