我经常在脚本中找到它(而且我必须承认,请自己编写):
a=$(echo "$x" | sed "s/foo/bar/")
要么
if echo "$x" | grep -q foo
then
...
fi
考虑“ foo”包括一些正则表达式的东西。
我认为应该-很有可能是 -一种更好的措辞,一种不涉及两个命令和管道但将其包装成更紧凑的表达式的方式。
我只是找不到。有人吗
我希望由于无知(不知道替代方案)和可维护性(知道替代方案但将其选择为更易于理解)的组合而经常使用该表达式。我可以一目了然地告诉您您的示例的功能,但是我需要一个shell参考来找出grawity和Dan McG的答案中的替代方法。
—
quack quixote
顺便说一句,执行命令替换的首选方法是使用
—
暂停,直到另行通知。
$()
而不是反引号。
引用扩展名也是一个好主意,以便保护空白:
—
克里斯·约翰森
a="$(echo "$x" | sed "s/foo/bar/")"
和if echo "$x" | grep foo; …
。
在$()与``上有很好的注释。我发现我的bash技能还不是很好。
—
DevSolar