出现错误EOF:使用ssh时找不到命令 [英] Getting an error EOF : Command no found when using ssh
本文介绍了出现错误EOF:使用ssh时找不到命令的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试重命名远程服务器中的文件名,如filename-dirname.suffix 并将文件复制到我的服务器上. 我写过类似...的代码.
I am trying to rename the filenames in remote server like filename-dirname.suffix and copy the files to my server . I had written code like ....
#!/usr/bin/bash
TRANSFERSERVERXMLS="/emp/transfer/XMLS"
REMOTESERVERXMLS="remoteemp/empdir/XMLS"
# renaming the filenames in remote server like filename-dirname.suffix
ssh abc@xyz REMOTESERVERXMLS=$REMOTESERVERXMLS 'bash -s'<< 'EOF'
for i in $REMOTESERVERXMLS/* ; do
if [[ -d $i ]]; then
dirname=$(basename $i)
for j in $REMOTESERVERXMLS/$dirname/* ; do
fname="$(basename "$j")"
prefix=$(echo $fname | awk -F "." 'NF{NF-=1};1')
suffix=$(echo $fname | awk -F "." '{print $NF}')
target=$prefix-$dirname.$suffix
mv $REMOTESERVERXMLS/$dirname/"$fname" $REMOTESERVERXMLS/$dirname/"${target// /_}"
done
fi
done
EOF
scp abc@xyz:${REMOTESERVERXMLS}/*/* ${TRANSFERSERVERXMLS}
获取错误:EOF:找不到命令 并且scp无法正常工作(无法复制到呼叫服务器中)
Getting an error : EOF:Command not found and scp is not working ( not able to copy into calling server)
推荐答案
在分隔符EOF
前面有一个空格.不要在此处文档"末尾缩进EOF
.分隔符(EOF
)必须是行中唯一的内容,且没有前导或尾随空格.
You have a space before the delimiter EOF
. Do not indent EOF
at the end of your "here document". The delimiter (EOF
) must be the only thing on the line, with no leading or trailing whitespace.
或者使用<<- 'EOF'
并使用制表符缩进.
Alternatively use <<- 'EOF'
and indent with a tab.
这篇关于出现错误EOF:使用ssh时找不到命令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文