我正在尝试从shell脚本使用'source〜/ .bash_profile'命令。但这是行不通的。我的脚本是这样的: test.sh
#!/bin/bash
source ~/.bash_profile
我使用多种方式来运行脚本./test.sh
,bash test.sh
和sh test.sh
。如果与. /test.sh
一起运行,那就可以了。这是正在运行的脚本吗?这是运行安装脚本的正确方法吗?
btw我还通过使用. ~/.bash_profile
,bash ~/.bash_profile
,sh ~/.bash_profile
,bash -c '~/.bash_profile'
更改脚本来进行测试。
Shell脚本中的“源”问题是什么?请解释一下正确的方法是什么?我如何在脚本中获取.bash_profile。谢谢大家!
答案 0 :(得分:0)
如果我理解正确,您还没有更改使脚本可执行的访问权限?
chmod +x test.sh
只有这样您才能运行它。希望这会有所帮助(如果我误解了,请告诉我)
答案 1 :(得分:0)
启动bash脚本时,您正在启动一个新的shell,因此您在子shell中运行源代码,而不是在发出命令的shell中运行源代码。
当您使用. /test.sh
启动它时,它就可以工作,因为这与source /test.sh
相同,您是在同一外壳而不是子外壳中从脚本启动命令。