我有一个名为test的脚本,我试图接受一个参数并用正斜杠替换反斜杠。如果我执行以下操作:
#!/bin/bash
FIRST_ARGUMENT=$1
echo $FIRST_ARGUMENT | sed 's/\\/\//g'
我用以下方式使用它:
$ ./test aaa\aa
aaaaa
我的反斜杠消失了。有没有办法保存它们,所以它们被sed取代?当我在echo调用中将路径硬编码为字符串时,如:
echo 'aaa\aa'| sed 's/\\/\//g'
我得到了正确的结果:
aaa/aa
答案 0 :(得分:4)
在将其传递给./test
时,请使用引用'
或"
作为:
./test 'aaa\aa'
以下示例显示带引号的内容与不带引号的内容:
moin@moin-pc:~$ echo aa\aa
aaaa # without '\'
moin@moin-pc:~$ echo "aa\aa"
aa\aa # with '\'
另请阅读:Meaning of backslash