ภายใต้ ทุบตีมีการทุบตีบางอย่าง:
tr
คำสั่งจะถูกแทนที่ด้วย//
bashism :
COMMAND=$'\nREBOOT\r \n'
echo "|${COMMAND}|"
|
OOT
|
echo "|${COMMAND//[$'\t\r\n']}|"
|REBOOT |
echo "|${COMMAND//[$'\t\r\n ']}|"
|REBOOT|
ดูการขยายพารามิเตอร์และการเสนอราคาในหน้า man ของ bash:
man -Pless\ +/\/pattern bash
man -Pless\ +/\\\'string\\\' bash
man -Pless\ +/^\\\ *Parameter\\\ Exp bash
man -Pless\ +/^\\\ *QUOTING bash
ต่อไป ...
ตามที่ @AlexJordan ถามสิ่งนี้จะระงับอักขระที่ระบุทั้งหมด แล้วถ้า$COMMAND
มีช่องว่าง ...
COMMAND=$' \n RE BOOT \r \n'
echo "|$COMMAND|"
|
BOOT
|
CLEANED=${COMMAND//[$'\t\r\n']}
echo "|$CLEANED|"
| RE BOOT |
shopt -q extglob || { echo "Set shell option 'extglob' on.";shopt -s extglob;}
CLEANED=${CLEANED%%*( )}
echo "|$CLEANED|"
| RE BOOT|
CLEANED=${CLEANED##*( )}
echo "|$CLEANED|"
|RE BOOT|
ไม่นาน:
COMMAND=$' \n RE BOOT \r \n'
CLEANED=${COMMAND//[$'\t\r\n']} && CLEANED=${CLEANED%%*( )}
echo "|${CLEANED##*( )}|"
|RE BOOT|
บันทึก: ทุบตีมีextglob
ตัวเลือกที่จะเปิดใช้งาน ( shopt -s extglob
) เพื่อใช้*(...)
ไวยากรณ์