shell脚本中的双括号存在问题
我有一个执行的shell脚本。 在脚本中我有:
if [[ $variable == *something* ]]; then
do something
fi
我的问题在于运行脚本返回“[[not found]”。
从阅读其他答案看来,并不是所有的shell都能识别双括号,但是,我不确定解决方案是什么,这个代码的等价物是什么?
听起来你的shell是POSIX sh
,它没有[[
builtin]。 可能的解决方案包括将其转换为适用于sh
的表达式或将shebang行更改为#!/bin/bash
。 改变shebang通常是最好的解决方案。
如果你在Ubuntu上,你可能有一个POSIX sh
,他们使用短划线。
我知道只有一个括号,你是否只用一个括号来尝试它? 否则你可以使用test
。
POSIX标准解决方案:
if test echo "${variable}" | grep -q 'something'
then
# do something
fi
那将永远工作:)
链接地址: http://www.djcxy.com/p/97045.html