2

在 Unix 中,如何做到这一点?

#!/bin/sh
x=echo "Hello" | grep '^[A-Z]'

我想x取值"Hello",但这个脚本似乎不起作用。拼写上述内容的正确方法是什么?

4

3 回答 3

11

您可以command substitution用作:

x=$(echo "Hello" | grep '^[A-Z]')

您还可以将过时的反引号样式用作:

x=`echo "Hello" | grep '^[A-Z]'`
于 2010-10-14T03:47:21.047 回答
2

您也可以使用外壳内部而不调用外部工具,例如 case/esac

str="Hello"
case "$str" in
 [A-Z]* ) x=$str;;
esac
于 2010-10-14T03:56:57.713 回答
0

确保您使用的是预期的正则表达式支持grep,grep 跨 unix 有许多变体。

于 2010-10-14T04:37:03.287 回答