出现错误EOF:使用ssh时找不到命令 [英] Getting an error EOF : Command no found when using ssh

查看:389
本文介绍了出现错误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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆