Bash
如何在反引號中使用變數
我有一個 bash 腳本,它接受參數“$input”並(除其他外)將其引導到程序中並收集輸出。
目前我的線路是:
OUTPUT=`./main.exe < $input`
但我收到以下錯誤:
$input: ambiguous redirect
正確的方法是什麼?
您的變數值可能包含空格。
你應該雙引號它:
output=$( ./main.exe <"$input" )
在這種
bash
情況下,shell 要求變數被引用,否則將對其值執行分詞和文件名通配,而其他 shell 可能不需要這樣做。另外,請注意,
$input
這裡是將連接到程序的標準輸入流的文件的路徑名,而不是參數main.exe
(我可能誤解了您的文本,但絕不會更少)。如果你想$input
用作命令行參數,你的命令看起來像output=$( ./main.exe "$input" )
有關的:
還: