Score:0

ทุบตีตั้งแต่เริ่มต้น -- อีกครั้ง

ธง cn

ในขณะที่การเดินทางผ่าน Bash ดำเนินต่อไป ฉันยังคงติดอยู่กับสิ่งที่ไร้สาระเช่นสคริปต์นี้ ฉันไม่สามารถสรุปได้ว่า:

#!/bin/bash

ถ้า [ $1 -gt 100 ]
แล้ว
   echo "คุณพิมพ์ตัวเลขมากไป"
   ถ้า (( $1 % 2 == 0 ))
   แล้ว
      echo "และมันก็เป็นเลขคู่"
ไฟ

เมื่อเร็ว ๆ นี้ฉันได้รับคำแนะนำให้เก็บ ShellCheck ไว้ใกล้มือ และฉันก็ทำเช่นนั้น แต่ดูเหมือนว่าคำแนะนำเกี่ยวกับวิธีการปรับปรุงสคริปต์นี้ก็ไม่ได้ผลเช่นกัน โดยทั่วไปเมื่อฉันพยายามเรียกใช้ ฉันมักจะได้รับข้อผิดพลาดเช่น "[: !=: unary โอเปอเรเตอร์ที่คาดไว้" แม้ว่าฉันจะพยายามเสนอราคา $1 เป็น "$1" ซึ่ง ShellCheck ก็แนะนำเช่นกัน ใครก็ได้ช่วยฉันลงที ขอบคุณมากในล่วงหน้า!

terdon avatar
cn flag
คุณทำงานนี้อย่างไร ก่อนอื่น คุณไม่สามารถรับข้อผิดพลาดที่คุณพูดถึง เนื่องจากคุณไม่มี `!=` ที่ใดก็ได้ในสคริปต์ของคุณ ประการที่สอง คุณไม่มีตัวปิด `if` ซึ่งหมายความว่าคุณจะได้รับข้อผิดพลาดอีก ประการที่สาม คุณอาจเรียกใช้สคริปต์โดยไม่มีอาร์กิวเมนต์ ดังนั้น `$1` จึงไม่ได้กำหนด แต่โปรดอย่าทำให้เราคาดเดา: [แก้ไข] คำถามของคุณและตรวจสอบให้แน่ใจว่าคุณแสดงรหัสจริงที่คุณใช้ อธิบายวิธีที่คุณเปิดใช้งาน และข้อผิดพลาดจริงที่คุณได้รับ
Score:2
ธง cn
raj

สคริปต์ของคุณมีข้อผิดพลาดทางไวยากรณ์ มันขาดอีกหนึ่ง ไฟ ในตอนท้าย เมื่อแก้ไขข้อผิดพลาดนี้แล้ว คุณจะได้รับ "ตัวดำเนินการยูนารีที่คาดไว้" เนื่องจากคุณ $1 ค่า (ค่าของพารามิเตอร์แรกของสคริปต์) ว่างเปล่า และค่าแรก ถ้า คำสั่งคาดว่าค่านั้นจะไม่ว่างเปล่า คุณต้องเรียกสคริปต์ด้วยตัวเลขบางตัวเป็นพารามิเตอร์ เช่น:

./สคริปต์ 150

จากนั้นคุณจะได้รับคำตอบ:

คุณพิมพ์ตัวเลขที่มากขึ้น
และมันก็เป็นเลขคู่

หากคุณต้องการให้สคริปต์ไม่แสดงข้อความแสดงข้อผิดพลาดเมื่อเรียกโดยไม่มีพารามิเตอร์ ก่อนที่จะใช้พารามิเตอร์ คุณต้องตรวจหาว่าพารามิเตอร์ว่างเปล่าหรือไม่ และดำเนินการบางอย่าง ตัวอย่างเช่น คุณสามารถเพิ่มรหัสต่อไปนี้ก่อนรหัสแรกของคุณ ถ้า สั่งการ:

ถ้า [ -z "$1" ]
แล้ว
   echo "ต้องการพารามิเตอร์!"
   ทางออก
ไฟ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา