为什么 Bash 不能将我的变量识别为字符串?
Why is Bash not recognising my variable as a string?
我制作了一个 bash 脚本。我们称它为 "runner.sh"。在里面我是 运行 带有一些标志的 omxplayer。
omxplayer $TARGETFOLDER/*.mp4
这很好用。现在让我们调整视频的大小和位置。
omxplayer —win "0 0 640 480" $TARGETFOLDER/*.mp4
这也很好用。现在让我们尝试将 "win flag" 放入变量中。我正在转义报价。
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,为什么不把它当作一个参数?
而不是 storing the command arguments in a variable,使用数组:
SizeAndPosition=(-win '0 0 640 480')
omxplayer "${SizeAndPosition[@]}" "$TARGETFOLDER"/*.mp4
我制作了一个 bash 脚本。我们称它为 "runner.sh"。在里面我是 运行 带有一些标志的 omxplayer。
omxplayer $TARGETFOLDER/*.mp4
这很好用。现在让我们调整视频的大小和位置。
omxplayer —win "0 0 640 480" $TARGETFOLDER/*.mp4
这也很好用。现在让我们尝试将 "win flag" 放入变量中。我正在转义报价。
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,为什么不把它当作一个参数?
而不是 storing the command arguments in a variable,使用数组:
SizeAndPosition=(-win '0 0 640 480')
omxplayer "${SizeAndPosition[@]}" "$TARGETFOLDER"/*.mp4