如何执行 bash 中带引号的命令?
How do I execute commands with quotation marks in bash?
基本上,我有一个文件 (say.sh),它使用 api 来保存和播放文本到语音的 mp3 文件。 api 使用 URL: http://api.voicerss.org/?key=keygoeshere&src=TEXT_GOES_HERE&hl=en-gb&c=mp3&r=1&f=32khz_8bit_stereo
脚本(如下)使用 wget 获取文件。理论上,这段代码应该可以工作,但实际上并没有。如果我回显 wget 命令,它 returns 是一个工作命令,成功 运行s,但是一旦我删除回显,它就会被引号混淆并停止工作。
#!/bin/bash
TA="http://api.voicerss.org/?key=MY_KEY_IS_HERE&src="
TB="&hl=en-gb&c=mp3&r=1&f=32khz_8bit_stereo"
wget -O example.mp3 \"$TA$@$TB\"
omxplayer example.mp3
如果这里有人知道如何解决这个问题,那将非常有帮助。谢谢!
编辑:运行 我已经尝试过 sh say.sh Text here
和 sh say.sh "Text here"
的命令。两者都不起作用 -_-
我不知道您需要为 wget 命令转义任何引号,但我认为如果变量彼此相邻附加,您可以尝试使用 {}
:
#!/bin/bash
TA="http://api.voicerss.org/?key=MY_KEY_IS_HERE&src="
TB="&hl=en-gb&c=mp3&r=1&f=32khz_8bit_stereo"
wget -O example.mp3 "${TA}${TB}"
omxplayer example.mp3
试一试,告诉我们进展如何。
感谢您的回复!我设法通过添加 "${TA}${@}${TB}" 并使用 \" 声明一个特殊字符来解决此问题:
#!/bin/bash
TA="http://api.voicerss.org/?key=keygoeshere&src=\""
TB="\"&hl=en-gb&c=mp3&r=1&f=32khz_8bit_stereo"
wget -O example.mp3 "${TA}${@}${TB}"
omxplayer example.mp3
基本上,我有一个文件 (say.sh),它使用 api 来保存和播放文本到语音的 mp3 文件。 api 使用 URL: http://api.voicerss.org/?key=keygoeshere&src=TEXT_GOES_HERE&hl=en-gb&c=mp3&r=1&f=32khz_8bit_stereo
脚本(如下)使用 wget 获取文件。理论上,这段代码应该可以工作,但实际上并没有。如果我回显 wget 命令,它 returns 是一个工作命令,成功 运行s,但是一旦我删除回显,它就会被引号混淆并停止工作。
#!/bin/bash
TA="http://api.voicerss.org/?key=MY_KEY_IS_HERE&src="
TB="&hl=en-gb&c=mp3&r=1&f=32khz_8bit_stereo"
wget -O example.mp3 \"$TA$@$TB\"
omxplayer example.mp3
如果这里有人知道如何解决这个问题,那将非常有帮助。谢谢!
编辑:运行 我已经尝试过 sh say.sh Text here
和 sh say.sh "Text here"
的命令。两者都不起作用 -_-
我不知道您需要为 wget 命令转义任何引号,但我认为如果变量彼此相邻附加,您可以尝试使用 {}
:
#!/bin/bash
TA="http://api.voicerss.org/?key=MY_KEY_IS_HERE&src="
TB="&hl=en-gb&c=mp3&r=1&f=32khz_8bit_stereo"
wget -O example.mp3 "${TA}${TB}"
omxplayer example.mp3
试一试,告诉我们进展如何。
感谢您的回复!我设法通过添加 "${TA}${@}${TB}" 并使用 \" 声明一个特殊字符来解决此问题:
#!/bin/bash
TA="http://api.voicerss.org/?key=keygoeshere&src=\""
TB="\"&hl=en-gb&c=mp3&r=1&f=32khz_8bit_stereo"
wget -O example.mp3 "${TA}${@}${TB}"
omxplayer example.mp3