多个ssh命令中的cat不起作用

时间:2016-02-28 16:12:15

标签: linux bash shell ssh heredoc

这可能是非常基本但不幸的是我不知道如何谷歌。

为什么下面的代码片段没有按预期工作?我的意思是,如何让cat指向远程文件?

#!/bin/bash

ssh user@remoteaddress << EOF
  mkdir sandpit
  cd sandpit
  echo "foo" > foo.txt
  echo `cat foo.txt` > foo2.txt
EOF

1 个答案:

答案 0 :(得分:3)

将其用作:

ssh -t -t user@remoteaddress<<'EOF'
mkdir sandpit
cd sandpit
echo "foo" > foo.txt
cat foo.txt > foo2.txt
xargs kill < pid.txt
exit
EOF

如果没有引号EOF,所有单词都会受到shell扩展的影响,反向引号会在当前shell中展开,而不是在ssh上展开。