我正在尝试编写一个脚本,该脚本必须检查文件是否存在。在控制台中,我写
if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi
我得到
not mod
但是当我编写脚本执行相同的操作时:
#!/bin/sh
if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi
然后执行脚本,我得到以下信息:
./ex.sh: 2: [[: not found
mod
我将脚本保存在当前目录中,并将其命名为ex.sh,然后确保该脚本可执行。要调用脚本,我需要这样做:
./ex.sh
为什么会出现这个问题?我已经尝试了很多东西:
if [ -a /home ...
和
if test -a /home ...
他们俩都回来了
13: -a: unexpected operator
我能够使其工作,但为此我不得不删除第一行(#!/ bin / sh)您知道为什么会这样吗?
—
2012年
试试
—
kev 2012年
#!/bin/bash
您好kev,我也提到了。我刚刚更新了我的问题。我花了太多时间在此上,但是我很高兴我能解决它。感谢您的回答。的确是解决问题的方法。
—
Buzu 2012年
@Kev请作为答复发布
—
slhck 2012年
Buzu,@ Kev-如果找到答案,请在下面将其发布为答案,请勿编辑问题。
—
user1686