【发布时间】:2013-09-15 13:04:26
【问题描述】:
我对如何在 shell 脚本的变量中搜索和替换特定字符感到两难。
例如我有一个条件,我需要将'~' 传递给java 程序,但我应该将它作为'/~' 传递以避免它被作为$HOME 拦截。我有一个 shell 变量,例如$1 = '.-~' 我将它作为参数直接传递给 Java 程序。那么如何修改这个变量,使其搜索'~',如果找到则更改$1 = '.-/~',以避免Java程序中的错误。
我尝试了$(1//~//~),但它给了我一个错误。
这也给了我一个错误。
sed 's#~#/#g' <<< $x;
【问题讨论】:
-
用 '/' 转义 '~' 以避免它被 bash 插入为 $HOME。