当前位置: 技术问答>linux和unix
linux 远程ssh调用问题
来源: 互联网 发布时间:2016-11-22
本文导语: 我在hostA主机上写了一个脚本xptest.sh,放在路径/root/test下 #!/bin/bash mkdir xp echo $PWD =================== 在/root/test运行脚本,结果新建了路径/root/test/xp, echo $PWD显示为/root/test 然后在hostB主机上改为远程调用的方式: ssh r...
我在hostA主机上写了一个脚本xptest.sh,放在路径/root/test下
#!/bin/bash
mkdir xp
echo $PWD
===================
在/root/test运行脚本,结果新建了路径/root/test/xp, echo $PWD显示为/root/test
然后在hostB主机上改为远程调用的方式:
ssh root@hostA "/root/xp/xptest.sh"
运行结果, 在root下新建了路径/root/xp, echo $PWD显示为 /root
问题原因很明显,当前路径的问题,
目前可以在sh脚本中用cd:绝对路径的方式改变,但是不够优雅,因为脚本如果移动到其他地方,路径得重新修改,还有其他更好的办法吗?求教
#!/bin/bash
mkdir xp
echo $PWD
===================
在/root/test运行脚本,结果新建了路径/root/test/xp, echo $PWD显示为/root/test
然后在hostB主机上改为远程调用的方式:
ssh root@hostA "/root/xp/xptest.sh"
运行结果, 在root下新建了路径/root/xp, echo $PWD显示为 /root
问题原因很明显,当前路径的问题,
目前可以在sh脚本中用cd:绝对路径的方式改变,但是不够优雅,因为脚本如果移动到其他地方,路径得重新修改,还有其他更好的办法吗?求教
|
我在hostA主机上写了一个脚本xptest.sh,放在路径/root/test下
#!/bin/bash
mkdir xp
echo $PWD
===================
在/root/test运行脚本,结果新建了路径/root/test/xp, echo $PWD显示为/root/test
这个肯定的阿,你创建目录以后并没有cd到里边,肯定是当前的目录/root/test
#!/bin/bash
mkdir xp
echo $PWD
===================
在/root/test运行脚本,结果新建了路径/root/test/xp, echo $PWD显示为/root/test
这个肯定的阿,你创建目录以后并没有cd到里边,肯定是当前的目录/root/test
|
可以通过脚本路径来标识,比如
cd $(dirname $0)
cd $(dirname $0)