小编Buz*_*uzu的帖子

为什么我在运行脚本时得到 [[: not found?

我正在尝试编写一个必须检查文件是否存在的脚本。在控制台我写

if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi
Run Code Online (Sandbox Code Playgroud)

我得到

not mod
Run Code Online (Sandbox Code Playgroud)

但是当我写一个脚本来做同样的事情时:

#!/bin/sh
if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi
Run Code Online (Sandbox Code Playgroud)

然后执行脚本,我得到这个:

./ex.sh: 2: [[: not found
mod
Run Code Online (Sandbox Code Playgroud)

我将脚本保存在当前目录中并将其命名为 ex.sh,然后确保它是可执行的。要调用脚本,我这样做:

./ex.sh
Run Code Online (Sandbox Code Playgroud)

为什么我会遇到这个问题?我已经尝试了很多东西:

if [ -a /home ...
Run Code Online (Sandbox Code Playgroud)

if test -a /home ...
Run Code Online (Sandbox Code Playgroud)

两人归来

13: -a: unexpected operator
Run Code Online (Sandbox Code Playgroud)

bash shell-script

16
推荐指数
1
解决办法
3万
查看次数

标签 统计

bash ×1

shell-script ×1