我有执行bash命令的基于浏览器的shell /终端,正在转义空格,但事实证明括号也需要转义。对于不在引号中的文件名,还需要转义其他哪些字符?
尚不清楚您要做什么。自动补全与什么有关?
—
Michael Vehrs
@MichaelVehrs我
—
jcubic
mv filename filename-foo
在bash中有命令,除了空格和括号外,还需要转义哪些字符?
@MichaelVehrs删除了自动完成功能。
—
jcubic
基本上,所有shell元字符,例如空格,shell glob,历史事件。因此,您应该引用整个文件名,而不要转义单个字符:
—
Michael Vehrs
mv "$filename" "$newname"
。
@MichaelVehrs我知道用引号可以解决转义的问题,但是我需要使用不带引号的文件名。我有终端模拟器,当用户不使用引号时它应该可以工作。
—
jcubic