我无法在问题列表中搜索此内容。请帮我在这里查找是否有人问过。
我在各种m / c上做ssh,文件名如“/ a / b / file $$$$”。
ssh $host "/a/b/file$$$$"
现在已被替换为
ssh $host "/a/b/file54645464"
上面是我正在运行的bash scrpt的proc id。
所以问题是以后的查询找不到这个
任何指针都会有很大的帮助。
答案 0 :(得分:2)
尝试
ssh $host '/a/b/file$$$$'
使用'
而非"
进行引号可防止变量替换。
来自manpage(QUOTING
部分):
用单引号括起字符可保留引号中每个字符的字面值。
在您的情况下替换的变量是$
:
$
扩展为shell的进程ID。在()子shell中,它扩展为当前shell的进程ID,而不是子shell。
由于$
符号(也)用于访问$
变量的值,每对($$
)都被进程ID替换,这就是为什么你最终两次进程ID。
答案 1 :(得分:2)
使用单引号使$
未展开:
$> echo '$ok'
$ok