我有一个 bash 脚本,它接受参数“$input”并(除其他外)将其引导到程序中并收集输出。
目前我的线路是:
OUTPUT=`./main.exe < $input`
但我收到以下错误:
$input: ambiguous redirect
正确的做法是什么?
答案1
您的变量值可能包含空格。
你应该双引号它:
output=$( ./main.exe <"$input" )
shellbash
要求变量在这种情况下被引用,否则将对其值执行分词和文件名通配,而其他 shell 可能不需要这样做。
另外,请注意,$input
这里是将连接到程序的标准输入流的文件的路径名,而不是参数main.exe
(我可能误解了您的文本,但无论如何)。如果您想用作$input
命令行参数,您的命令将如下所示
output=$( ./main.exe "$input" )
有关的:
还: