簡體   English   中英

Bash腳本:無法使用哪個設置變量

[英]Bash script: Can't set a variable using which

在我的終端上

prog="cat"
name=$(which $prog)
echo $name

打印/bin/cat

但是在我的腳本中:

pro="$1"
prog=$(which $pro)
echo "pro is $pro"
echo "prog is "$prog""

運行scriptname cat圖案

pro is cat
prog is 

我該如何進行工作? 它應該打印prog is /bin/cat

which(1)是用於在PATH中搜索可執行文件的外部程序。 在不同的系統上,它的行為有所不同,您不能依賴有用的退出代碼。 使用(從最便攜到最不便攜) command -vtype -P (查找路徑)或hash (檢查)。

嘗試在腳本內部和外部都使用printf '%s\\n' "$PATH" 也許您要查找的命令不在腳本中使用的PATH中?

幾乎可以肯定是原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM