我有一个bash脚本是这样的:呼应变量导致报价BASH
#!/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"
而且我有这个线的问题:
mysql -uUSER -pPASSWORD -DDatabase -e 'UPDATE boom SET count = count + 1 WHERE Failo_vardas="$pavadinimas"';
正如你看到的我要添加变量引用,但它没有它出来。我尝试了很多组合来解决这个问题,但是我失败了。缺乏经验:/
脚本结果:
#!/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
我想呼应的变量报价是这样的:
mysql -uUSER -pPASSWORD -DDatabase -e 'UPDATE boom SET count = count + 1 WHERE Failo_vardas="name.mp4"';
逃生要使用如引号'WHERE Failo_vardas = \ “$ pavadinimas \”'。 – Gavin
@Gavin该死的,我忘了“\”字符....太感谢你了!你可以添加这个答案,所以我可以接受它? – semkius
您的脚本容易受到SQL注入攻击。 – chepner