有人有更好的经验,那么我可以看看这段代码,并解释为什么没有字符串替换是发生。如果我在终端运行相同的命令(文本输入,而不是变量),那么它的工作原理。
#!/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