首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >回声变量在引号BASH中的结果

回声变量在引号BASH中的结果
EN

Stack Overflow用户
提问于 2016-11-15 13:48:11
回答 2查看 3.1K关注 0票数 0

我有这样一个bash脚本:

代码语言:javascript
复制
#!/bin/bash
pavadinimas=$1
pavadinimas2=${pavadinimas::-4}
echo "#!/bin/sh
mysql -uUSER -pPASSWORD -DDatabase -e 'UPDATE boom SET count = count + 1 WHERE Failo_vardas="$pavadinimas"';
vlc -f --play-and-exit /var/www/html/uploads/$pavadinimas" > /var/www/html/script/"$pavadinimas2.sh"

我对这句话有意见:

代码语言:javascript
复制
mysql -uUSER -pPASSWORD -DDatabase -e 'UPDATE boom SET count = count + 1 WHERE Failo_vardas="$pavadinimas"';

正如您所看到的,我想将变量添加到引号中,但是没有它。我尝试了很多组合来解决这个问题,但我失败了。缺乏经验:/

脚本结果:

代码语言:javascript
复制
#!/bin/sh

    mysql -uUSER -pPASSWORD -DDatabase -e 'UPDATE boom SET count = parodymai + 1 WHERE Failo_vardas=name.mp4';
    vlc -f --play-and-exit /var/www/html/uploads/gaidys.mp4

我想在下面的引号中回显这个变量:

代码语言:javascript
复制
mysql -uUSER -pPASSWORD -DDatabase -e 'UPDATE boom SET count = count + 1 WHERE Failo_vardas="name.mp4"';
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-15 13:54:54

你们真的很亲密。你只需转义你想要使用的引号。例如WHERE Failo_vardas=\"$pavadinimas\"

票数 2
EN

Stack Overflow用户

发布于 2016-11-15 13:51:46

您必须保留单引号,否则您的变量将不会被计算。

因此,在双引号后插入一个单引号,将变量放入求值,然后在变量后面重新插入一个引号。在单引号结束的地方,你的副官。变量将被计算,而不是按字面处理。

演示:

代码语言:javascript
复制
$ pavadinimas=name.mp4

$ echo 'UPDATE boom SET count = count + 1 WHERE Failo_vardas="'$pavadinimas'"';

结果:

代码语言:javascript
复制
UPDATE boom SET count = count + 1 WHERE Failo_vardas="name.mp4"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40611468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档