如何在反引号内使用变量

如何在反引号内使用变量

我有一个 bash 脚本,它接受参数“$input”并(除其他外)将其引导到程序中并收集输出。

目前我的线路是:

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

但我收到以下错误:

$input: ambiguous redirect

正确的做法是什么?

答案1

您的变量值可能包含空格。

你应该双引号它:

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

shellbash要求变量在这种情况下被引用,否则将对其值执行分词和文件名通配,而其他 shell 可能不需要这样做。

另外,请注意,$input这里是将连接到程序的标准输入流的文件的路径名,而不是参数main.exe (我可能误解了您的文本,但无论如何)。如果您想用作$input命令行参数,您的命令将如下所示

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

有关的:

还:

相关内容