Git for windows bash脚本的执行路径不正确

时间:2017-12-13 07:30:23

标签: git bash git-bash git-for-windows

当代码

SRC=$(cd $(dirname "$0"); pwd)

在安装在c:\program files\Git中的Git for Windows的系统上的Bash脚本中执行,SRC将获得值/c/program

如何使这项工作? 我需要获取脚本所在的路径,并使用它来包含具有相对路径的其他脚本。 在我的情况下,下一行是: 来源" $ {SRC} /common/common.sh"

该脚本位于c:\program files\Git\usr\bin中,因此我可以使用git <command-name>并使用一些有用的手工命令扩展Git,用于带有rebase和子模块的功能分支工作流程。
如果有人想帮忙的话,源代码是https://github.com/jlovs/git-scripts

2 个答案:

答案 0 :(得分:3)

您需要引用*** Test Cases *** Positional Various Args hello world # Logs 'arg: hello' and 'vararg: world'. Named Various Args arg=value # Logs 'arg: value'. Kwargs Various Args a=1 b=2 c=3 # Logs 'kwarg: a 1', 'kwarg: b 2' and 'kwarg: c 3'. Various Args c=3 a=1 b=2 # Same as above. Order does not matter. Positional and kwargs Various Args 1 2 kw=3 # Logs 'arg: 1', 'vararg: 2' and 'kwarg: kw 3'. Named and kwargs Various Args arg=value hello=world # Logs 'arg: value' and 'kwarg: hello world'. Various Args hello=world arg=value # Same as above. Order does not matter. 命令的参数。

cd

命令替换SRC=$(cd "$(dirname "$0")"; pwd) 扩展为包含空格的路径。以下$(dirname "$0")命令获取两个参数,而您只想传递一个,并且内部有空格。

由于cd命令替换启动了新的quoting context,因此您无需担心另一对引号内$0周围的引号。

答案 1 :(得分:0)

正如您所说,您在MINGW64下运行。您可以尝试使用SRC=$(cygpath -aw $(cd "$(dirname "$0")"; pwd)) 将路径转换为Windows格式:

attributes: {
        user_id: {
            type: 'string'
        }}

更多信息herehere