บรรทัดนี้ใช้งานได้ตามที่คาดหวังด้วยตัวมันเอง
(echo '@$X!'; sleep 3; echo '@$X!')
และฉันต้องแทรกบรรทัดนี้ในไฟล์โดยใช้คำสั่งต่อไปนี้ แต่มันไม่ทำงาน echo
คำสั่ง 'ed จะต้องปฏิบัติการ
echo "(echo '@$X!'; sleep 3; echo '@$X!') | mycmd" >> a
มันกลับข้อผิดพลาดนี้
sh: !': event not found
ฉันเข้าใจว่าการสะท้อนสตริงระหว่างเครื่องหมายคำพูดเดี่ยวยับยั้ง substituion ตัวแปรหรือการหลบหนีของอักขระ แต่ฉันไม่สามารถใช้สิ่งนั้นเพื่อแก้ปัญหานี้!
ฉันต้องทำมันผ่านคำสั่งเพราะฉันจะส่งมันผ่านเครื่องมือเพื่อแก้ไขไฟล์โดยใช้โปรแกรมแก้ไขไม่ได้เป็นตัวเลือกสำหรับฉัน
ฉันได้รับข้อผิดพลาดเดียวกันในการทุบตีเช่นกัน
—
nohillside
@ Muhammad-gelbana จำเป็นต้องเป็น
—
nohillside
!
หรือไม่? แล้วจะเกิดอะไรขึ้นa
หลังจากนั้นมันจะถูกเรียกใช้งานเป็นเชลล์สคริปต์หรือไม่?
@patrix ใช่แล้ว :)
—
มูฮัมหมัด Gelbana
$
ตัวละครจะต้องต่อท้ายด้วย ไฟล์ที่ถูกต่อท้ายจะถูกเรียกใช้งานในการเริ่มต้นแต่ละครั้งและเป็นสิ่งสำคัญมากที่จะใช้วิธีนี้
ฉันแค่กังวลเล็กน้อยว่าเรากำลังแก้ปัญหาที่ผิดที่นี่ ภาพที่คุณต้องการทำให้สำเร็จมากขึ้นคืออะไร (ทำไมคุณต้องสร้างสคริปต์เริ่มต้นโดยทางโปรแกรมในตอนแรก)
—
nohillside
sh
โหมด (สามารถมองเห็นได้จากข้อความแสดงข้อผิดพลาด) ฉันไม่ได้รับข้อผิดพลาดจากการทุบตีแม้ว่า$
ความต้องการการหลบหนี (และฉันอาจมีการตั้งค่าตัวเลือกที่ไม่ใช่ค่าเริ่มต้น)