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