【问题标题】:how to do if else in ssh pseudo-tty allocation to remote serverif else in ssh pseudo-tty分配给远程服务器怎么办
【发布时间】:2019-09-23 11:10:22
【问题描述】:

我尝试使用以下 bash 脚本将 sshpseudo-tty allocation 连接到远程服务器;

ssh -t -t user@remote-host
if [ -d "/test/dir_test" ]; then
  sudo chown -R user:admin /test/dir_test/
  sudo rm -rf /test/dir_test/*
else        
  sudo mkdir /test/dir_test/
fi

检查/test/dir_test 是否存在于remote-host,如果不存在则在远程主机上创建这样的目录test/dir_test;但是脚本不起作用,我想知道在这种情况下如何使用sshpseudo-tty allocation

【问题讨论】:

  • 您是否发现任何错误?

标签: linux bash ssh tty


【解决方案1】:

您必须像这样引用要发送到服务器的命令:

ssh -t -t user@remote-host "
if [ -d '/test/dir_test' ]; then
  sudo chown -R user:admin /test/dir_test/
  sudo rm -rf /test/dir_test/*
else        
  sudo mkdir /test/dir_test/
fi"

请注意,sudo 需要密码,除非在其配置中另有说明。

【讨论】:

    【解决方案2】:

    您可以通过带有 heredoc 的标准输入发送命令:

    ssh -tt user@remote-host <<EOT
    if [ -d "/test/dir_test" ]; then
      sudo chown -R user:admin /test/dir_test/
      sudo rm -rf /test/dir_test/*
    else        
      sudo mkdir /test/dir_test/
    fi
    exit
    EOT
    

    注意最后的退出命令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-11
      • 1970-01-01
      • 2016-01-28
      • 1970-01-01
      • 2013-07-27
      • 1970-01-01
      • 2015-10-06
      相关资源
      最近更新 更多