我有一個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