我收到一个 if 语句错误,我不熟悉将 CShell 与数组和 if 语句一起使用。
我正在阅读的文件是
FGF 101001011000
我的代码是
#!/bin/csh
foreach year (1999 2000 2001)
foreach month (1 2 3 4 5)
echo "" > $year$month
if ($month == 1) then
set letter = F
else if ($month == 2) then
set letter = G
else if ($month == 3) then
set letter = H
else if ($month == 4) then
set letter = R
else if ($month == 5) then
set letter = D
else
print "Fail"
endif
@ year2 = $year % 100
awk '{split ($2,b,""); if (b["'$month'"] == 1) print $1"'$letter'""'$year2'"}' fileRead >> newFile
end
end
月份的值是字符串还是数字,我可以直接将该值与 1 的值进行比较吗?即使我之前说过 set ,我是否每次使用 letter 时都需要包含 set ?if 语句在 CShell 中如何工作?CShell 中的数组是否像在 java 中那样工作?我知道在java中我会做第1个月,但是,从我的研究中我读到数组从1开始而不是0。这是真的吗?谁能告诉我为什么会出现 if 错误?