我在这里是perl
菜鸟,想要从我的unix机器的命令行运行它。
./myprog.pl $str1 str2
我需要将str2
替换为str1
。麻烦的是我不知道如何逃离$
参数中的str1
。我试着在这里和其他网站上看,但我找不到任何东西。任何帮助将不胜感激!
答案 0 :(得分:1)
什么外壳?这是bourne-shell还是衍生物,然后以下两个都会将$str1
和str2
传递给该程序。
./myprog.pl '$str1' str2
./myprog.pl \$str1 str2
但你谈的是“替换”。第一个arg是假设是匹配$str1
的正则表达式模式吗?如果是这样,那么您可以使用以下任一项:
./myprog.pl '\$str1' str2
./myprog.pl \\\$str1 str2
这为正则表达式引擎转义$
(通过添加\
),然后转义shell的\
和$
(通过添加引号或额外{{} 1}} S)。