Score:-1

expr: ข้อผิดพลาดทางไวยากรณ์: อาร์กิวเมนต์ที่ไม่คาดคิด âDesktopâ

นี่คือสคริปต์ทุบตีของฉันสำหรับแปลงอุณหภูมิอินพุตจากเซลเซียสเป็นฟาเรนไฮต์

#!/bin/bash
echo "ใส่อุณหภูมิเป็นองศาเซลเซียส: "
อ่านเซลเซียส
อุณหภูมิ=$(expr $celsius * 9/5 + 32 )
echo "อุณหภูมิเป็นองศาฟาเรนไฮต์: $temp"

ฉันได้รับข้อความแสดงข้อผิดพลาดนี้:

expr: ข้อผิดพลาดทางไวยากรณ์: อาร์กิวเมนต์ที่ไม่คาดคิด âDesktopâ

คุณมีการแก้ปัญหาใด ๆ?

Someone avatar
my flag
Ubuntu รุ่นของคุณคืออะไร? โปรดช่วย [แก้ไข] และเพิ่มข้อมูลบางอย่าง
Someone avatar
my flag
คำถามนี้มีปัญหาด้านการจัดรูปแบบหรือเนื้อหาที่รุนแรง คำถามนี้ไม่น่าจะกู้คืนได้ด้วยการแก้ไข และอาจต้องลบออก
karel avatar
sa flag
ข้อความของสคริปต์ทุบตีในคำถามถูกคัดลอกไปยังคำตอบของฉันสำหรับคำถามนี้
Score:2
ธง hr

เดอะ * สัญลักษณ์เป็นอักขระ shell glob (การสร้างชื่อไฟล์) ซึ่งจะขยายไปยังรายการไฟล์ที่ไม่ได้ซ่อนในไดเร็กทอรีปัจจุบัน - ในกรณีของคุณ ซึ่งดูเหมือนจะมี เดสก์ทอป สิ่งของ.

เพื่อป้องกันสิ่งนั้น คุณต้องปิดการวนรอบของเชลล์โดยใช้ ตั้ง -f หรือ ตั้งค่า -o noglob:

#!/bin/bash
ตั้ง -f
echo "ใส่อุณหภูมิเป็นองศาเซลเซียส: "
อ่านเซลเซียส
temp=$(expr "$celsius" * 9/5 + 32 )
echo "อุณหภูมิเป็นองศาฟาเรนไฮต์: $temp"

หรือทั้งอ้างหรือหนี * ตัวละครที่จะทำให้มันเป็นตัวอักษร:

#!/bin/bash
echo "ใส่อุณหภูมิเป็นองศาเซลเซียส: "
อ่านเซลเซียส
temp=$(expr "$celsius" \* 9/5 + 32 )
echo "อุณหภูมิเป็นองศาฟาเรนไฮต์: $temp"

ไม่ว่าในกรณีใดคุณควรมีนิสัยของการขยายเชลล์แบบ double-quoting เช่น $เซลเซียสเพื่อป้องกันการขยายตัวของเชลล์และการแยกคำ (โดยเฉพาะอย่างยิ่งเมื่อมีอินพุตของผู้ใช้ตามอำเภอใจ)

Score:1
ธง sa

สคริปต์ทุบตีที่ถูกต้องสำหรับการแปลงอุณหภูมิอินพุตจากเซลเซียสเป็นฟาเรนไฮต์โดยใช้ความนิยม พ.ศ โปรแกรมเทอร์มินัลแทน หมดอายุ ในบรรทัดที่ 4:

#!/bin/bash
echo "ใส่อุณหภูมิเป็นองศาเซลเซียส: "
อ่านเซลเซียส
temp=`echo "scale=1; $celsius*1.8 + 32" | BC` 
echo "อุณหภูมิเป็นองศาฟาเรนไฮต์: $temp"

พ.ศ สำหรับ "เครื่องคิดเลขพื้นฐาน" เป็นภาษาเครื่องคิดเลขที่มีความแม่นยำตามอำเภอใจ bc ใช้งานง่ายและง่ายกว่าการทำงานเงอะงะและยุ่งเหยิงกับ an หมดอายุ ข้อผิดพลาดทางไวยากรณ์ ค่าของ มาตราส่วน ฟังก์ชันคือจำนวนหลักหลังจุดทศนิยมในนิพจน์

โพสต์คำตอบ

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