Linuxのbashシェルスクリプトのif文で環境変数の中身が入っているかどうか調べてみる。
目次
Linuxのbashシェルスクリプトのif文
Linuxのbashシェルスクリプトのif文は、いろいろな値を比較したり、testできる。
数値の比較オプション
例 : if [ ${hoge} -eq 0 ];then
オプション | 説明 | 補足 |
---|---|---|
-eq | 等しければ真 | equal |
-ne | 等しくなければ真 | not equal |
-lt | より小なら真 | less than |
-le | 以下なら真 | less than or equal |
-gt | より大なら真 | greater than |
-ge | 以上なら真 | greater than or equal |
文字列の比較オプション
例 : if [ "${hoge}" = "fuga" ];then
オプション | 説明 |
---|---|
= | 等しければ真 |
!= | 等しくなければ真 |
ファイルディレクトリのオプション
例 : if [ -d ${hoge} ];then
オプション | 説明 |
---|---|
-d | ディレクトリなら真 |
-f | 普通のファイルなら真 |
-s | サイズが 0 より大きければ真 |
-e | 存在するなら真 |
-r | 読み取り可能なら真 |
-w | 書き込み可能なら真 |
-x | 実行可能なら真 |
文字列長のオプション
例 : if [ -z ${hoge} ];then
オプション | 説明 |
---|---|
-z | 文字列長が 0 なら真 |
-n | 文字列長が 0 より大なら真 |
引数の比較
例 : if [ $# -eq 2 ];then
変数 | 説明 |
---|---|
$# | 実行時に指定された引数の数 |
$1 | 実行時に指定された 1 番目の引数 |
$n | 実行時に指定された n 番目の引数 |
実行結果の比較
例 : if [ $? -ne 0 ];then
変数 | 説明 |
---|---|
$? | 直前のコマンドの実行結果 |
シェルスクリプトのif文で環境変数を調べる
以上を踏まえて、
.bash_profile に DISPLAY環境変数が入っていれば、
$ xhost +
を実行してみる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/.local/bin:$HOME/bin export PATH if [ -n "$DISPLAY" ]; then xhost + fi |
コメント