我正在尝试创建一个可供所有用户使用的脚本。
我在Windows 7机器上使用GitBash,而我尝试自动化的线路是
alias proxyon="source $HOMEPATH/.proxy/proxy-switch.sh
现在问题是,
echo &HOMEPATH
\Users\<username>
GitBash,在执行时删除\,因为它是一个特殊的字符,所以当我尝试运行命令“proxyon”时,它出错了
sh.exe": Users<username>/.proxy/proxy-switch.sh: no such file or directory found
这有什么办法吗?由于我无法更改$ HOMEPATH,因为它具有唯一标识符,因此它不能是通用脚本。
任何帮助都会得到满足。
答案 0 :(得分:1)
这里的问题是该变量的值在创建proxyon
别名时被扩展,然后带有反斜杠的文字字符串再次被转义为 别名运行。
你需要防止其中一个失误发生。
如果希望使用$HOMEPATH
执行proxyon
时存在的值(而不是创建别名时存在的$HOMEPATH
的值),则切换alias
创建单引号的双引号。
alias proxyon='source $HOMEPATH/.proxy/proxy-switch.sh'
无论如何,你应该引用变量扩展,所以这应该是:
alias proxyon='source "$HOMEPATH/.proxy/proxy-switch.sh"'
如果你想要使用创建别名时存在的$HOMEPATH
的值(而不是运行别名时存在的$HOMEPATH
的值),那么你想要添加转义别名创建的双引号。
alias proxyon="source \"$HOMEPATH/.proxy/proxy-switch.sh\""