我想判断远程主机上是否存在某个文件.

$ if [ ssh user@localhost -p 19999 -e /home/user/Dropbox/path/Research_and_Development/Puffer_and_Traps/Repeaters_Network/UBC_LOGS/log1349544129.tar.bz2 ] then echo "okidoke"; else "not okay!" fi
-sh: syntax error: unexpected "else" (expecting "then") 

推荐答案

以下是一个简单的方法:

#!/bin/bash
USE_IP='-o StrictHostKeyChecking=no username@192.168.1.2'

FILE_NAME=/home/user/file.txt

SSH_PASS='sshpass -p password-for-remote-machine'

if $SSH_PASS ssh $USE_IP stat $FILE_NAME \> /dev/null 2\>\&1
            then
                    echo "File exists"
            else
                    echo "File does not exist"

fi

你需要在机器上安装sshpass才能工作.

Linux相关问答推荐

使用sed替换字符,但如果它是在bash csv文件中的字符串中,则不使用

BASH-SCRIPT-在特定行合并两个文件

AWK打印到文件正在追加,而不是覆盖

Docker 守护进程安装在 ubuntu jenkins docker 容器代理权限被拒绝

在 linux 中插入带有 sed 命令的文件的行

matlab中linux和windows上regexp()的不同行为

如何在ubuntu中通过.sh文件启动多个服务

问题:Virtio rpmsg 总线 virtio0:收到的 msg 没有收件人 - 在 Yocto Hardknott - imx7d-pico

sig_atomic_t 实际上是如何工作的?

对一个命令使用不同的 PHP 版本 CLI 可执行文件

从 .war 文件外部化 Tomcat webapp 配置

从 shell 将多个 .sql 转储文件导入 mysql 数据库

为什么这个命令会杀死我的 shell?

如何准确复制文件夹

将 AWK 结果分配给变量

使用单个命令打开 .tar.gz 文件

什么是适用于 Linux 的好的 Prolog IDE?

解压tar tar.bz2 文件报错

ctrl-x 在终端中使用时会发送哪个信号?

在tmux中绑定Ctrl+Tab和Ctrl+Shift+Tab