「シェルスクリプトの基礎 - 外部コマンド」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「== 概要 == シェルスクリプトにおいて、外部コマンドを使用する必要がある場合、その外部コマンドが使用可否を調べておくと…」) |
編集の要約なし |
||
27行目: | 27行目: | ||
exit -1 | exit -1 | ||
fi | fi | ||
</source> | |||
<br><br> | |||
== コマンドの実行結果を変数に代入する == | |||
<code>ls</code>、<code>grep</code>、<code>find</code>等のコマンドの実行結果を変数に代入するには、以下のように記述する。<br> | |||
変数=$(コマンド) | |||
または | |||
変数=`コマンド` | |||
<br> | |||
以下の例では、lsコマンドの実行結果を変数FILESに代入して、echoで出力している。<br> | |||
<source lang="sh"> | |||
#!/bin/sh | |||
FILES=$(ls) | |||
echo "$FILES" | |||
</source> | |||
または<br> | |||
<source lang="sh"> | |||
#!/bin/sh | |||
FILES=`ls` | |||
echo "$FILES" | |||
</source> | </source> | ||
<br><br> | <br><br> |
2020年10月6日 (火) 15:50時点における版
概要
シェルスクリプトにおいて、外部コマンドを使用する必要がある場合、その外部コマンドが使用可否を調べておくと便利である。
外部コマンドの使用可否
以下の例では、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
コマンドの実行結果を変数に代入する
ls
、grep
、find
等のコマンドの実行結果を変数に代入するには、以下のように記述する。
変数=$(コマンド) または 変数=`コマンド`
以下の例では、lsコマンドの実行結果を変数FILESに代入して、echoで出力している。
#!/bin/sh
FILES=$(ls)
echo "$FILES"
または
#!/bin/sh
FILES=`ls`
echo "$FILES"