シェルスクリプトの基礎 - 外部コマンド

提供:MochiuWiki : SUSE, EC, PCB
2020年10月6日 (火) 15:50時点におけるWiki (トーク | 投稿記録)による版
ナビゲーションに移動 検索に移動

概要

シェルスクリプトにおいて、外部コマンドを使用する必要がある場合、その外部コマンドが使用可否を調べておくと便利である。


外部コマンドの使用可否

以下の例では、pythonコマンドの使用可否を確認している。

type -P <コマンド名>は、環境パスで指定されたディレクトリから<コマンド名>を検索して、そのフルパスを取得するが、
ここでは、<コマンド名>の使用可否を確認するために利用している。

そのまま実行すると<コマンド名のフルパスが出力されるので、/dev/nullデバイスへリダイレクトして、出力を抑制している。

 if type -P python > /dev/null; then
    echo 'python コマンドを使用できます'
 else
    echo 'python コマンドが見つかりません'
 fi


また、指定した外部コマンドが使用できない場合、シェルスクリプトを終了させるには、以下のように記述すればよい。
条件式を!で反転させていることに注意すること。

また、<cod>echoの出力を>&2とリダイレクトすると、標準エラー出力へ出力できる。

 if ! type -P python3 > /dev/null; then
    echo 'This script requires Python 3. Please install Python 3 first and try again.' >&2
    exit -1
 fi



コマンドの実行結果を変数に代入する

lsgrepfind等のコマンドの実行結果を変数に代入するには、以下のように記述する。

変数=$(コマンド)
   または
変数=`コマンド`


以下の例では、lsコマンドの実行結果を変数FILESに代入して、echoで出力している。

 #!/bin/sh
 
 FILES=$(ls)
 echo "$FILES"

または

 #!/bin/sh
 
 FILES=`ls`
 echo "$FILES"