在 Unix 中,如何做到这一点?
#!/bin/sh
x=echo "Hello" | grep '^[A-Z]'
我想x
取值"Hello"
,但这个脚本似乎不起作用。拼写上述内容的正确方法是什么?
您可以command substitution
用作:
x=$(echo "Hello" | grep '^[A-Z]')
您还可以将过时的反引号样式用作:
x=`echo "Hello" | grep '^[A-Z]'`
您也可以使用外壳内部而不调用外部工具,例如 case/esac
str="Hello"
case "$str" in
[A-Z]* ) x=$str;;
esac
确保您使用的是预期的正则表达式支持grep
,grep 跨 unix 有许多变体。