剪切功能在shell脚本中不起作用

剪切功能在shell脚本中不起作用,shell,Shell,我有一个类似“iupd=installedUpdate”的字符串。我需要提取“=”前面的字符。 我正在使用代码: PLIST_ITEMS = "iupd=installedupdates" keyValue = `echo $PLIST_ITEMS| cut -d'=' -f 1` echo $keyValue keyValue为空。请帮助我解释我的错误。删除=运算符周围的空格: PLIST_ITEMS="iupd=installedupdates" keyValue=`echo $PLIST

我有一个类似“
iupd=installedUpdate
”的字符串。我需要提取“
=
”前面的字符。 我正在使用代码:

PLIST_ITEMS = "iupd=installedupdates"
keyValue = `echo $PLIST_ITEMS| cut -d'=' -f 1`
echo $keyValue

keyValue为空。请帮助我解释我的错误。

删除
=
运算符周围的空格:

PLIST_ITEMS="iupd=installedupdates"
keyValue=`echo $PLIST_ITEMS| cut -d'=' -f 1`
echo $keyValue

有一种更简单的方法,只需使用Bash而不产生更多进程:

key=${PLIST_ITEMS%%=*}

这会切掉第一个
=
和之后的所有内容,并将其存储在
$key

中。请尝试删除赋值运算符(“=”)周围的空格。我可以知道为什么这个问题被否决。@selva:如果我复制“n”粘贴Amit的代码,它会正常工作,并响应
iupd
。如果它对您不起作用,您需要解释您正在使用哪个shell,以及在哪个平台上使用它。所示代码应适用于从Bourne shell派生的任何shell(Korn shell、Bash等);它不适用于从C shell派生的shell(
csh
tcsh
)。@Amit&Jonathan,这段代码工作正常。我在其他一些地方有问题。谢谢你抽出时间。