คำถามติดแท็ก eval

7
คำสั่ง "eval" ใน bash คืออะไร?
คุณสามารถทำอะไรกับevalคำสั่ง? ทำไมถึงมีประโยชน์ มันมีฟังก์ชั่นในตัวในการทุบตี? ไม่มีmanหน้าสำหรับมัน ..
176 bash  shell  eval 

1
ทำไมเอาท์พุตของ ssh-agent
ในการวิ่งssh-agentฉันต้องใช้ eval $(ssh-agent) ทำไมฉันถึงต้องevalส่งออกของssh-agent? ทำไมมันไม่ได้ออกแบบมาเพื่อที่ฉันจะสามารถเรียกใช้มันได้ หมายเหตุ: ลบ Backticks (`) ออกเนื่องจากถูกเลิกใช้แล้ว คุณสามารถอ่านเพิ่มเติมได้ที่นี่เช่น
67 shell  ssh  ssh-agent  eval 

4
ฉันจะแสดงชื่อผู้ใช้และ / หรือโฮมไดเร็กตอรี่ทั้งหมดได้อย่างไร?
ฉันต้องการแสดงรายการผู้ใช้ทั้งหมดบนเครื่องโดยปกติแล้วฉันจะทำ: ls -l /home แต่ฉันใช้มันในสคริปต์ที่จะติดตั้งบนเครื่องอื่นและอาจใช้กับเครื่องที่พวกเขาไม่เรียกมันว่าบ้าน (เช่น myHome) ls -l ~ดังนั้นผมจึงต้องการที่จะพูดคุยมัน แต่มันจะแสดงรายชื่อผู้ใช้ที่บ้านของฉันแทนที่จะเป็นชื่อผู้ใช้ที่บ้าน (โดยทั่วไปฉันต้องการรับรายชื่อผู้ใช้บนเครื่อง) ฉันจะพูดคุยเรื่องนี้ได้อย่างไร

2
พฤติกรรมของ "eval" ภายใต้ "set -e" ในการแสดงออกตามเงื่อนไข
พิจารณาคำสั่ง eval false || echo ok echo also ok ปกติเราจะคาดหวังนี้จะดำเนินการfalseสาธารณูปโภคและเนื่องจากสถานะออกเป็นที่ไม่ใช่ศูนย์ไปแล้วดำเนินการและecho okecho also ok ในทุก POSIX เหมือนเปลือกหอยที่ผมใช้ ( ksh93, zsh, bash, dash, OpenBSD kshและyash) นี้เป็นสิ่งที่เกิดขึ้น set -eแต่สิ่งที่ได้รับที่น่าสนใจถ้าเราเปิดใช้งาน หากset -eมีผล OpenBSD ของshและkshเปลือกหอย (มาทั้งจากpdksh) evalจะยุติสคริปต์เมื่อการดำเนินการ ไม่มีเปลือกอื่นทำ POSIX บอกว่าข้อผิดพลาดในยูทิลิตี้บิวด์อินพิเศษ (เช่นeval) ควรทำให้เชลล์ที่ไม่มีการโต้ตอบหยุดทำงาน ฉันไม่แน่ใจทั้งหมดว่าการดำเนินการfalseถือเป็น "ข้อผิดพลาด" (ถ้าเป็นเช่นนั้นจะเป็นอิสระจากset -eการใช้งาน) วิธีแก้ปัญหานี้ดูเหมือนว่าจะใส่ไว้evalในเปลือกย่อย ( eval false ) || echo ok echo …
10 posix  openbsd  eval 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.