什么时候Linux路径中的斜杠需要在bash脚本中的引号之外

H2O*_*aCl 2 bash tilde-expansion

为什么第一次扩展不起作用,第二次扩展不起作用?

我知道代字号必须在引号之外扩展,但斜线也必须在外面,出乎意料.

#!/bin/bash
ls ~"/Documents/bashscripts/test.sh"
ls ~/"Documents/bashscripts/test.sh"
Run Code Online (Sandbox Code Playgroud)

koj*_*iro 5

这是波浪扩展工作的一个微妙之处.在第二种情况下,tilde-by-by-slash被扩展到当前用户的主目录.在第一种情况下,尝试将代号为tilde-by -eded-word扩展到名为"/Documents/bashscripts/test.sh"的用户的主目录.从联系方式,Tilde扩展部分:

...第一个未加引号的斜杠之前的所有字符都被视为波浪号前缀.如果没有引用tilde-prefix中的任何字符,则代字号后面的波浪号前缀中的字符将被视为可能的登录名....