我一直在研究一個小腳本,該腳本打開gedit或我在Linux機器中編輯的任何編輯器來編輯包含文件夾中的另一個腳本在PATH
變量中。使用「which」查找Bash中第一個參數的路徑不起作用
我使用which
來查找腳本的路徑,以便我可以給出編輯器的路徑並開始編輯該腳本。腳本的名字顯然是腳本的第一個參數。
問題是當which
作爲另一個腳本的第一個參數給出時找不到腳本,但是如果直接使用它,它會找到該路徑。
下面是一個例子,使其更清晰。
which script.sh
prints "/home/bla/bla/script_folder/script.sh
,但如果我用在一個腳本像這樣:
echo "ScriptPath: $(which 1)"
echo "ScriptName: $1"
這會不會對一些奇怪的原因,工作。我知道在參數1中使用的腳本的位置在我的PATH變量中可用。 Echo
將不會打印任何東西,當我給它$(which 1)
,假設$1
是我正在尋找的腳本的名稱。我不知道這是爲什麼。然後,我決定將腳本的名稱放在一個變量中,然後用它來查找新變量包含的內容(在我的情況下是腳本的名稱),但它也不起作用。
例:
scriptName="$1"
echo "$(which scriptName)"
This won't work either.
Such a simple thing, and I cannot make it work for some weird reason. Any ideas why this is not working?
您似乎在美元符號內放置'$()' - 您需要$($「$」)和$($「$ scriptName」)'。只有在*算術*評估中,您可以放棄sigil:'x = 5; echo $((x + 1))' –