为什么Bash没有将我的变量识别为字符串?

时间:2015-04-25 16:42:51

标签: string bash integer

我制作了一个bash脚本。我们称之为“runner.sh”。在里面,我正在运行带有一些标志的omxplayer。

omxplayer $TARGETFOLDER/*.mp4

这很好用。现在让我们调整大小并定位视频。

omxplayer —win "0 0 640 480" $TARGETFOLDER/*.mp4

这也很好。现在让我们尝试将“胜利旗帜”放在一个变量中。我正在逃避报价。

SizeAndPosition="—win \"0 0 640 480\""

好吧,现在我正在尝试。

omxplayer $SizeAndPosition $TARGETFOLDER/*.mp4

不,不行。我收到错误文件“0”未找到。为了确保,我将整个命令打印到屏幕上。

echo "omxplayer $SizeAndPosition $TARGETFOLDER/*.mp4"

......我得到了输出......

omxplayer —win "0 0 640 480" /homefolder/*.mp4

为什么它不能将我的变量识别为命令中的任何其他字符串?我能为此做些什么吗?

编辑:对此感到抱歉。问题是关于SizeAndPosition,为什么它不被视为参数?

1 个答案:

答案 0 :(得分:3)

而不是storing the command arguments in a variable,请使用数组:

SizeAndPosition=(-win '0 0 640 480')
omxplayer "${SizeAndPosition[@]}" "$TARGETFOLDER"/*.mp4