我有一个执行的 shell 脚本。在脚本中我有:
if [[ $variable == *something* ]]; then
do something
fi
我的问题是运行脚本返回“[[未找到”。
从阅读其他答案来看,似乎并非所有 shell 都能识别双括号,但是,我不确定解决方案是什么,该代码的等价物是什么?
听起来您的外壳是 POSIX sh
,它没有[[
内置。sh
可能的解决方案包括将其转换为适用于或将 shebang 行更改为的表达式#!/bin/bash
。改变shebang通常是最好的解决方案。
sh
如果你在 Ubuntu 上,你可能有一个 POSIX ,他们使用破折号。
我只知道一个括号,你试过每个只用一个括号吗?否则你可以test
改用。
POSIX 标准解决方案:
if test echo "${variable}" | grep -q 'something'
then
# do something
fi
这将始终有效:)