當我使用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