源.bash_profile在shell脚本中不起作用。我能怎么做?

时间:2018-12-14 11:58:40

标签: bash shell

我正在尝试从shell脚本使用'source〜/ .bash_profile'命令。但这是行不通的。我的脚本是这样的: test.sh

#!/bin/bash
source ~/.bash_profile

我使用多种方式来运行脚本./test.shbash test.shsh test.sh。如果与. /test.sh一起运行,那就可以了。这是正在运行的脚本吗?这是运行安装脚本的正确方法吗?

btw我还通过使用. ~/.bash_profilebash ~/.bash_profilesh ~/.bash_profilebash -c '~/.bash_profile'更改脚本来进行测试。 Shell脚本中的“源”问题是什么?请解释一下正确的方法是什么?我如何在脚本中获取.bash_profile。谢谢大家!

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您还没有更改使脚本可执行的访问权限?

   chmod +x test.sh

只有这样您才能运行它。希望这会有所帮助(如果我误解了,请告诉我)

答案 1 :(得分:0)

启动bash脚本时,您正在启动一个新的shell,因此您在子shell中运行源代码,而不是在发出命令的shell中运行源代码。

当您使用. /test.sh启动它时,它就可以工作,因为这与source /test.sh相同,您是在同一外壳而不是子外壳中从脚本启动命令。