$ HOMEPATH + \在GitBash中不起作用

时间:2015-04-27 18:15:12

标签: bash shell scripting git-bash

我正在尝试创建一个可供所有用户使用的脚本。

我在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,因为它具有唯一标识符,因此它不能是通用脚本。

任何帮助都会得到满足。

1 个答案:

答案 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\""