远程执行shell脚本老是不成功,怎么解决? 在 2023年3月5日2023年3月7日 上张贴 由 zhaoxw3条评论 最近有个功能需要通过ssh远程登陆到服务器上执行命令。由于命令比较复杂,就在远程服务器上写好脚本。本地执行该脚本没有问题。远程执行就失败。 由于是java程序,已经想到是环境变量的问题。但如何快速而且简单的解决问题呢? 答案是: source /etc/profile 把上面的内容添加到脚本中。执行脚本时会初始化环境变量并且执行。如果你需要的环境变量不在这个文件中,也可以加入到这个文件再执行。
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 回复
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
如果是环境变量问题,可以直接使用export命令引用变量。为了保险起见,最好使用source /etc/profile 引用系统变量。防止他们直接有关联。
这都不知道啊