Bash

如何在反引號中使用變數

  • February 15, 2019

我有一個 bash 腳本,它接受參數“$input”並(除其他外)將其引導到程序中並收集輸出。

目前我的線路是:

OUTPUT=`./main.exe < $input`

但我收到以下錯誤:

$input: ambiguous redirect

正確的方法是什麼?

您的變數值可能包含空格。

你應該雙引號它:

output=$( ./main.exe <"$input" )

在這種bash情況下,shell 要求變數被引用,否則將對其值執行分詞和文件名通配,而其他 shell 可能不需要這樣做。

另外,請注意,$input這裡是將連接到程序的標準輸入流的文件的路徑名,而不是參數main.exe (我可能誤解了您的文本,但絕不會更少)。如果你想$input用作命令行參數,你的命令看起來像

output=$( ./main.exe "$input" )

有關的:

還:

引用自:https://unix.stackexchange.com/questions/500867