0
我有一個腳本如下:shell腳本 - 運行分配給一個變量返回一個腳本「命令未找到」
var1=some_val1
var2=some_val2
var3=some_val3
varX=another_script.sh ${var1} ${var2} ${var3}
我收到以下錯誤:
./script.sh: line 5: some_val1: command not found
如何獲得它運行正常嗎?該腳本基本上採用這些參數並運行Hive查詢。如果我將Hive查詢替換爲another_script.sh blah blah blah
,則它可以很好地工作,並且變量會捕獲稍後在腳本中使用的值。我嘗試交換它使其更加抽象,並且我遇到了這個問題。請幫忙。謝謝!
殼正在解釋的線如在'A = B命令ARG1 arg2',的它運行'command'與環境變量'形式存在a'設爲值'b'。因此,在運行'var1'命名的命令時(假設只擴展爲一個字,除非您修復引用後才能保證),則將環境變量'varX'設置爲值another_script.sh'。 –
@CharlesDuffy:+1解釋爲什麼會發生這種情況。謝謝! :) – CodingInCircles
...我的意思是「修復你的引用」是'another_script.sh「$ var1」「$ var2」「$ var3」'將確保'var1','var2'和'var3'每個都只是一個參數傳遞,而你當前的代碼沒有這樣的保證 - 每個變量擴展可以是零個參數或幾個(如果它們包含空白或水平字符)。 –