我试图让bash脚本在git bash中运行,同时指定一个不同于我主目录中的.bashrc(或根本没有)但是它证明是一项不可能完成的任务。
根据我的理解,这应该有效:
“C:\ Program Files(x86)\ Git \ bin \ sh.exe”--rcfile .bashrc --login -i C:/Scripts/myscript.sh
然而,无论我尝试什么,都会完全忽略--rcfile文件标志,否则脚本会得到解析错误,因为它不会被bash解析。
以下是我的发现:
我已经尝试了所有可能的组合,包括调用我的.bashrc文件中的脚本,交换标志,使用-c标志运行脚本命令并交换我的.bashrc文件以尝试使用 - -norc flag而不是。
这只是windows的糟糕bash实现的结果还是我做错了什么?
对此事的任何帮助表示赞赏。
答案 0 :(得分:2)
您可以尝试在.bashrc
脚本中搜索myscript.sh
。
source .bashrc
或
. .bashrc
答案 1 :(得分:1)
据我所知,-i
标志被提供bash
运行脚本的事实所覆盖。您的shell实际上不是交互式的,因此忽略--rcfile
。我可以告诉运行脚本和来源附加文件的唯一方法是使用非交互式登录shell;但是,在这种情况下,您只能使用.bash_profile
,.bash_login
或.profile
,无论哪个先找到:
bash --login myscript.sh
--loginfile
之前没有myscript.sh
覆盖选择的文件来源。
更新:我忘了BASH_ENV
。
export BASH_ENV=.bashrc
bash myscript.sh
我不知道如何在Git bash中将BASH_ENV
添加到您的环境中。