有人有更好的經驗,那麼我可以看看這段代碼,並解釋爲什麼沒有字符串替換是發生。如果我在終端運行相同的命令(文本輸入,而不是變量),那麼它的工作原理。
#!/bin/bash
echo "important to escape every \"/\" character"
read -p "Specify the old string you want to replace? (from) " FROM
read -p "Specify the new string you want to use instead? (to) " TO
cp ../backup/mysql/dump.sql ../backup/mysql/dump.sql.backup.$(date +"%Y-%m-%d-%H-%M-%S") \
&& sed -i 's/$FROM/$TO/g' ../backup/mysql/dump.sql
對變量擴展使用雙引號,即'sed -i「s/$ FROM/$ TO/g」' – anubhava
謝謝@anubhava – superhero