我想判断这两个文件是否都存在,但我正在

test.sh: line 3: [: missing `]'

有人知道怎么了吗?

#!/bin/sh

if [ -f .ssh/id_rsa && -f .ssh/id_rsa.pub ]; then
   echo "both exist"
else
   echo "one or more is missing"
fi

推荐答案

try 添加一个额外的方括号.

if [[ -f .ssh/id_rsa && -f .ssh/id_rsa.pub ]]; then

Linux相关问答推荐

Linux在所有多行中用新值替换整个列

如何检测文件系统是否支持权限?

pci_user_write_config_word在哪里实现?

Git - 打印以不同编码混合的文件

std::chrono::time_zone 在不同操作系统上不可用

使用 ansible 验证 firewalld 配置

树莓派拒绝连接到瓶子服务器

进程Forking 后 pthread_key_create() 生成的密钥会发生什么?

Linux 进程在后台 - 在作业(job)中 Stopped停止?

使用 gdb 将地址转换为行

应用程序如何在运行时解析为不同版本的共享库?

Java 8 上的 SQL Server JDBC 错误:驱动程序无法使用安全套接字层 (SSL) 加密建立与 SQL Server 的安全连接

如何在 shell 脚本中动态生成新的变量名?

在使用文件时截断文件 (Linux)

bash 脚本中的自动 docker 登录

qstat 和长作业(job)名称

在文件夹中的 gzip 文件中查找字符串

区分 Java 线程和 OS 线程?

如何在没有 root 用户的情况下在 Linux (CentOS) 中安装软件包并进行自动依赖处理?

当我已经 ssh 进入远程机器时,如何 scp 回到本地?