为什么当我直接在命令行上键入它时它会起作用:
oldversion=12345
newversion=67890
sed -i "s/${oldversion}/${newversion}/g" "/home/user/MyDir_${newversion}/MyDir_${newversion}.reg"
但是当我将它放入脚本中时,它不会:
#!/bin/bash
oldversion=12345
newversion=67890
sed -i "s/${oldversion}/${newversion}/g" "/home/user/MyDir_${newversion}/MyDir_${newversion}.reg"
它执行为./myscript.sh
它会产生错误
sed:-e 表达式 #1,字符 16:“s”的未知选项
答案1
sed 脚本中的字符 16 不存在。这是"
sed 所抱怨的字符,这意味着您的编辑器或输入方法将其替换为 的某些非 ASCII 表示形式"
。我的猜测是或者“
或者”
。¨
使用file
您的文件来猜测编码。它应该是“ASCII”。任何其他内容都会暗示该文件包含您不希望出现的内容。