是否可以在UNIX中将变量设置为等于表达式?

时间:2010-10-14 03:45:05

标签: unix shell variables sh

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

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

我希望x获取值"Hello",但此脚本似乎不起作用。拼写如上所述的正确方法是什么?

3 个答案:

答案 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上有许多变体。

相关问题