มีวิธีการเปลี่ยนเส้นทาง stdout และ stderr ผ่านตัวแปรเช่นเพิ่มตัวเลือกคำสั่งในสคริปต์ใด ๆ
ตัวอย่างเช่นฉันมีสคริปต์:
#!/bin/bash -x
TEST=">/dev/null 2>&1"
OPT='-p -v'
mkdir $OPT 123/123/123 $TEST
ฉันเห็นว่า OPT ถูกแทนที่ด้วย-p
ไม่มีปัญหาใด ๆ และทุบตีตีความมันเป็นตัวเลือก แต่การเปลี่ยนเส้นทางตีความเป็นชื่อไดเรกทอรี
$ ./test.sh
+ TEST='>/dev/null 2>&1'
+ OPT='-p -v'
+ mkdir -p -v 123/123/123 '>/dev/null' '2>&1'
mkdir: created directory `123/123'
mkdir: created directory `123/123/123'
mkdir: created directory `>/dev'
mkdir: created directory `>/dev/null'
mkdir: created directory `2>&1'
มีวิธีใดที่จะบอกว่าทุบตีว่ามีการเปลี่ยนเส้นทาง $ VAR ไม่ใช่ชื่อ dirs
PS อาจเป็นฉันในทางที่ผิด แต่ฉันต้องการที่จะทำให้การส่งออก verbose เสริมหรือไม่ verbose จากสคริปต์ของฉัน แต่ฉันต้องการเอาต์พุตบางอย่างแม้ในโหมดที่ไม่มี verbose ดังนั้นฉันจึงไม่สามารถเปลี่ยนเส้นทางทั้ง stdout และ stderr ได้จากคำสั่งบางอย่างภายในสคริปต์ของฉันเท่านั้น