我想编写一个shell脚本来执行“export JAVA_HOME = .....”之类的命令 我怎么写剧本?
我试试:
#!/bin/sh
echo "test"
export PATH=$JAVA_HOME/bin:$PATH
export AWS_AUTO_SCALING_HOME=/usr/local/CLI
export PATH=$PATH:$AWS_AUTO_SCALING_HOME/bin
export AWS_CREDENTIAL_FILE=/usr/local/CLI/credential-file-path.template
但是没有执行命令。
答案 0 :(得分:4)
但是没有执行命令。
它们被执行,但是在子shell中。父shell不会继承这些值。
而不是执行您的脚本source
:
source /path/to/myscript.sh
或者
. /path/to/myscript.sh
进一步阅读: What is the difference between executing a bash script and sourcing a bash script?
答案 1 :(得分:4)
你是如何执行脚本的?如果您使用:
$ script.sh
环境设置为脚本的持续时间,但父shell完全不受此影响(Unix不是DOS!)。
要将命令的结果输入shell,请使用:
$ . script.sh
或在Bash中你可以使用:
$ source script.sh
(这是.
(点)命令的同义词,自Bourne shell以来一直在shell中。source
命令首先在C shell中,然后添加到Bash中。)< / p>
这些将脚本读入当前进程。任何环境变量设置都会影响当前进程。例如,使用. $HOME/.profile
可以有效地阅读您的个人资料。
请注意,在$ PATH的目录中搜索dotted命令的文件,但该文件只需要是可读的,而不是可执行的。
答案 2 :(得分:-1)
您是否尝试过设置执行文件的权限??
chmod + x filename