当我使用bash运行以下代码时,它会将值5赋值给var1。UNIX,为C或KornShell中的变量赋值(ksh)
var1=$(awk '$1>$3{ print "5"}' newfile2)
echo $var1
但是,当我在香蕉或什么的地方使用这个相同的代码,它给了我错误。有人可以告诉我,如果有其他方法,我可以编写这段代码,这样我就可以使用C或KornShell(ksh)来运行它。
当我使用bash运行以下代码时,它会将值5赋值给var1。UNIX,为C或KornShell中的变量赋值(ksh)
var1=$(awk '$1>$3{ print "5"}' newfile2)
echo $var1
但是,当我在香蕉或什么的地方使用这个相同的代码,它给了我错误。有人可以告诉我,如果有其他方法,我可以编写这段代码,这样我就可以使用C或KornShell(ksh)来运行它。
对于C shell,使用
set var=`....`
对于bash/ksh的
var1=$(awk '$1>$3{ print "5"}' newfile2)
使用反引号和csh的set命令。
set var1=`awk '$1>$3{ print "5"}' newfile2`
echo $var1
谢谢。当我使用这段代码时,它没有为var1分配任何值。 – 2010-10-14 02:51:10
请注意,有之前和变量名后没有空格。 so,
var1=`ls`
是你需要的。但是,如果您有
var = `ls`
您将收到错误消息。
所以,你的代码应该是:
var1=`awk '$1>$3{ print "5"}' newfile2`
echo $var1
确保您在bash shell,而非C或TCSH。
问题是,为什么会有人想编写csh而不是bash的代码?显然,csh的年龄加上它令人讨厌和有限的即席分析器是bash等贝壳变得流行的原因,不是吗? – PleaseStand 2010-10-14 02:38:22
你的shell告诉OP。在你的问题中提出你的意见。 AFAIK,他的老师说csh/ksh以及bash。 – ghostdog74 2010-10-14 02:39:55
感谢ghostdog的新代码。我用bash和另一个尝试它。现在它们都不适用于它们。它不会将任何值分配给var1,也不会比较条件。 – 2010-10-14 02:48:04