Bash
檢查 bash 腳本中是否安裝了無線工具
我想檢查系統(debian)上是否安裝了
wireless-config
(foriwconfig
)。如果沒有,則使用apt-get
. 我的 bash 腳本如下所示:if ! hash wireless-tools 2>/dev/null; then apt-get install wireless-tools; else echo "wireless-tools is installed" fi
最大的問題:
hash wireless-tools
似乎不起作用。無論是否安裝了無線工具,都不會返回任何東西。我怎樣才能以不同的方式檢查這個?
我建議檢查二進製文件
type
。hash
但是,還有一個專門用於檢查包狀態的工具:if ! dpkg-query -s wireless-tools 1> /dev/null 2>&1 ; then echo "Package wireless-tools is not currently installed." else echo "Package wireless-tools is currently installed." fi
如果您願意
iwconfig
,更可持續的長期解決方案(例如,如果您要切換包管理器或分發版)是檢查您實際想要使用的二進製文件。您可以使用 POSIXly 執行此操作command -v
:if command -v iwconfig >/dev/null; then echo 'iwconfig present' else echo 'iwconfig absent' fi
從
help command
bash 中:命令:命令
$$ -pVv $$命令$$ arg … $$ 執行簡單的命令或顯示有關命令的資訊。
使用 ARGS 執行 COMMAND 抑制 shell 函式查找,或顯示有關指定 COMMAND 的資訊。當存在同名函式時,可用於呼叫磁碟上的命令。
選項:
$$ … $$
- -v 列印類似於 `type’ 內置命令的描述