这可能是非常基本但不幸的是我不知道如何谷歌。
为什么下面的代码片段没有按预期工作?我的意思是,如何让cat
指向远程文件?
#!/bin/bash
ssh user@remoteaddress << EOF
mkdir sandpit
cd sandpit
echo "foo" > foo.txt
echo `cat foo.txt` > foo2.txt
EOF
答案 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上展开。