如何将命令写入shell脚本?

时间:2013-03-04 03:26:47

标签: shell command-line

我想编写一个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

但是没有执行命令。

3 个答案:

答案 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