我在远程Debian服务器机器上有一个脚本,我想通过调用:
ssh server "find.sh"我的find.sh脚本在以下文件中:
/home/user/bin首先,我运行ssh服务器"echo $PATH“,它使用以下路径进行响应:
/home/user/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games因此,路径变量似乎没有问题,但不起作用。我唯一能让它工作的方法是调用完整路径:
ssh server "/home/user/bin/find.sh"有什么简单的方法可以让它在不指定完整路径的情况下工作吗?
发布于 2015-06-08 13:50:02
ssh server "echo $PATH"不是与ssh server "find.sh"相同的操作模式。第一个包含shell元字符(特别是一个空格),因此将由"sh -c‘指定的命令“运行;第二个不包含,因此将由"exec('specified_command')”运行。这种差别是微妙的,但在这种情况下(因为设置环境变量的是shell ),会产生副作用,这可能是您所不期望的。
您可以通过执行类似于ssh server 'bash -c "find.sh"'的操作来强制执行shell
https://unix.stackexchange.com/questions/208777
复制相似问题