ฉันใช้คำสั่ง:
cm1 cm2 arg1 arg2 'argument 3'
ก่อนอื่นจะไปที่cm1
ซึ่งจะเปลี่ยนเส้นทางarg1 arg2 'argument 3'
ไปยังไฟล์อื่น
/usr/bin/cm1
:
#! /bin/bash
# some script here
shift
cm2 $@
/usr/bin/cm2
:
echo $#
# This returns 4 in lieu of 3 because the white space in 'argument 3' causes the argument to be split into two arguments.
ดังนั้นฉันจะส่งผ่านข้อโต้แย้งจากสคริปต์หนึ่งไปยังอีกสคริปต์ได้อย่างไรและตรวจสอบให้แน่ใจว่าไม่มีการอ่าน white space ในฐานะตัวคั่นอาร์กิวเมนต์