Buz*_*uzu 16 bash shell-script
我正在尝试编写一个必须检查文件是否存在的脚本。在控制台我写
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)
kev*_*kev 13
您正在sh下运行为bash编写的脚本,该脚本缺少许多扩展语法功能 –是内置命令,在.[[bashsh
更改#!/bin/sh为#!/bin/bash或#!/usr/bin/env bash。