「シェルスクリプトの基礎 - 外部コマンド」の版間の差分

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

編集の要約なし
 
(同じ利用者による、間の2版が非表示)
4行目: 4行目:


== 外部コマンドの使用可否 ==
== 外部コマンドの使用可否 ==
==== type -Pコマンド ====
以下の例では、pythonコマンドの使用可否を確認している。<br>
以下の例では、pythonコマンドの使用可否を確認している。<br>
<br>
<br>
28行目: 29行目:
  fi
  fi
  </syntaxhighlight>
  </syntaxhighlight>
<br>
==== command -vコマンド ====
以下の例では、aplayコマンドの存在を確認して、存在する場合はWAVファイルを再生している。<br>
<syntaxhighlight lang="sh">
# aplayコマンドの存在を確認
if command -v aplay &> /dev/null; then
    # aplayコマンドが存在する場合、指定されたファイルが存在するか確認して、存在すれば再生
    if [ -f $HOME/Login.wav ]; then
      aplay $HOME/Login.wav
    else
      echo "音声ファイルが見つかりません"
    fi
else
    echo "aplayコマンドが見つかりません"
fi
</syntaxhighlight>
<br>
==== whichコマンド ====
whichコマンドの標準エラー出力を抑制して、コマンドの存在確認を行う。<br>
<syntaxhighlight lang="sh">
which <コマンド名> 2>/dev/null
</syntaxhighlight>
<br>
<syntaxhighlight lang="sh">
# 例 : gitコマンドのパスを確認
#      存在する場合のみパスを表示
which git 2>/dev/null
# 例 : 存在しないコマンドを確認
#      何も表示されない
which nonexistentcommand 2>/dev/null
</syntaxhighlight>
<br>
また、コマンドの存在確認を条件分岐に使用することもできる。<br>
<syntaxhighlight lang="sh">
# gitコマンドが存在するか確認
if which git >/dev/null 2>&1; then
    echo "gitコマンドが利用可能です"
else
    echo "gitコマンドが見つかりません"
fi
</syntaxhighlight>
<br>
以下の例で使用している<code>>/dev/null 2>&1</code>は、標準出力を破棄して、標準エラー出力を標準出力と同じ場所 (この例では、/dev/null) にリダイレクトする。<br>
これにより、whichコマンドの出力を完全に抑制しながら、コマンドの存在を確認することが可能となる。<br>
<br><br>
<br><br>


94行目: 140行目:
  Sample_20050102.txt
  Sample_20050102.txt
<br><br>
<br><br>
{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}


__FORCETOC__
__FORCETOC__
[[カテゴリ:シェルスクリプト]]
[[カテゴリ:シェルスクリプト]]