ข้อผิดพลาด - ไม่พบคำสั่ง:


0

ถ้า 0 -eq 0 ถ้าอย่างนั้น

อัปโหลดเสียงสะท้อนแล้ว

Fi

fi: ไม่พบคำสั่ง

ทำไมใครบางคนชี้ให้เห็นข้อผิดพลาด? ฉันใหม่สำหรับการเขียนสคริปต์ยูนิกซ์

ฉันสนุก 'csh'

คำตอบ:


1

ไวยากรณ์สำหรับการใช้งาน fi และตามที่คุณถามในความคิดเห็นสำหรับการใช้งาน -eq และ -gt คือทั้งหมด sh วากยสัมพันธ์ sh ไวยากรณ์จะทำงานได้ดีใน bashใน kshในความเป็นจริง sh (คุณควรจะได้รับการยอมรับจากมัน) แต่ ไม่ได้อยู่ใน csh.

CSH ใช้ SYNTAX ที่ต่างกันโดยสิ้นเชิง

สามารถสลับเชลล์หรือสลับไวยากรณ์ไปตามที่อธิบายไว้ใน csh manpage .

โดยเฉพาะใน csh คุณจะพูดว่า:

if ($var1 > 0) then
  echo positive
else if ($var1 == 0) then
  echo zero
else
  echo negative
endif

เกือบทุกบทช่วยสอน Linux และบทเรียนทั่วไปส่วนใหญ่จะแสดงให้คุณเห็น sh ไวยากรณ์ของสไตล์ไม่ใช่ csh - สไตล์ไวยากรณ์ หากคุณยังคงใช้ csh คุณควรตระหนักว่าคุณอาจทำให้ชีวิตตัวเองลำบาก


1

ฉันคิดว่ามันน่าจะใช้ได้นะ

if (0 == 0) echo uploaded

ฉันพยายามมันบอกว่าถ้า: ไวยากรณ์นิพจน์
user2052801

ถ้า [0 -eq 0]; ดังนั้น echo ที่อัปโหลด fi O / P คือถ้า: ไวยากรณ์ของนิพจน์
user2052801

@ user2052801 แก้ไขไม่ทราบว่าคุณใช้อยู่ csh.
PlasmaPower

ขอบคุณคุณช่วยแสดงตัวอย่างการใช้ -gt กับตัวแปรสองตัวได้ไหม ฉันดูว่า: ไวยากรณ์นิพจน์สำหรับสิ่งนั้น
user2052801

@ user2052801 ใช้ if ($number > 5) echo number is more than five.
PlasmaPower
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.