ฉันสามารถแสดงความต้องการของฉันกับสถานการณ์ต่อไปนี้: เขียนฟังก์ชั่นที่ยอมรับสตริงที่จะเรียกใช้เป็นคำสั่งดั้งเดิม
มันไม่ได้ดึงความคิดที่ไกลเกินไป: หากคุณกำลังเชื่อมต่อกับยูทิลิตี้บรรทัดคำสั่งอื่น ๆ จากที่อื่น ๆ ใน บริษัท ที่ให้คำสั่งให้คุณรันคำต่อคำ เพราะคุณไม่ได้ควบคุมคำสั่งคุณต้องยอมรับคำสั่งที่ถูกต้องเป็น input นี่คืออาการสะอึกหลักที่ฉันไม่สามารถเอาชนะได้ง่าย:
คำสั่งอาจดำเนินการโปรแกรมที่อยู่ในพา ธ ที่มีช่องว่างอยู่:
$command = '"C:\Program Files\TheProg\Runit.exe" Hello';
คำสั่งอาจมีพารามิเตอร์ที่มีช่องว่างในพวกเขา:
$command = 'echo "hello world!"';
คำสั่งอาจมีทั้งเห็บเดี่ยวและคู่:
$command = "echo `"it`'s`"";
มีใดวิธีทำความสะอาดการบรรลุนี้หรือไม่? ฉันทำได้แค่คิดวิธีการฟุ่มเฟือยและการแก้ปัญหาที่น่าเกลียด แต่สำหรับภาษาสคริปต์ฉันรู้สึกว่ามันน่าจะง่าย