处理可能包含美元符号的bash变量?

时间:2015-02-18 18:14:50

标签: bash variables sed character

我有一个接受可能包含特殊字符的用户输入的脚本。我通过sed配方运行该变量,该配方将查找并转义特殊字符,但如果变量包含' $'输出被截断。如何自动转义可能出现在变量中的任何美元符号?或者我只需要回复一条消息,"如果有一个美元符号,你必须在它前面添加一个反斜杠"?

1 个答案:

答案 0 :(得分:0)

示例文件:

$ cat file.txt
Foo
teste $var lorem ipsum
$foo bar $z
Bar

脚本:

#!/usr/bin/env bash
read -p 'Type search pattern: ' pattern
sed -n '/'"${pattern}"'/ p' < file.txt

现在,如果您执行chmod u+x script,然后执行:

$ ./script
Type search pattern: $var
teste $var lorem ipsum

虽然非常简单但有效。你正在引用东西吗?