远程执行shell脚本老是不成功,怎么解决?

最近有个功能需要通过ssh远程登陆到服务器上执行命令。由于命令比较复杂,就在远程服务器上写好脚本。本地执行该脚本没有问题。远程执行就失败。

由于是java程序,已经想到是环境变量的问题。但如何快速而且简单的解决问题呢?

答案是:

source /etc/profile

把上面的内容添加到脚本中。执行脚本时会初始化环境变量并且执行。如果你需要的环境变量不在这个文件中,也可以加入到这个文件再执行。

远程执行shell脚本老是不成功,怎么解决?》有3个想法

  1. source script_name.sh or . script_name.sh
    这种方式不需要文件有执行权限。当使用source或点号执行脚本时,其中包含的环境变量定义,当前shell可以调用。
    案例:
    #cat defineUser.sh
    user=`whoami`
    #sh defineUser.sh
    #echo $user
    内容为空。
    #source defineUser.sh
    #echo $user
    root

  2. 如果是环境变量问题,可以直接使用export命令引用变量。为了保险起见,最好使用source /etc/profile 引用系统变量。防止他们直接有关联。

回复 匿名 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注