ฉันต้องการใช้การทดแทนตัวแปรบนสตริงเฉพาะที่ฉันเข้าถึงผ่านคำสั่ง ตัวอย่างเช่นหากฉันคัดลอกบางสิ่งลงในคลิปบอร์ดของฉันฉันสามารถเข้าถึงได้เช่นนี้
$ xclip -o -selection clipboard
Here's a string I just copied.
หากฉันกำหนดให้กับตัวแปรดังนั้นฉันสามารถทำการทดแทนตัวแปรได้
$ var=$(xclip -o -selection clipboard)
$ echo $var
Here's a string I just copied.
$ echo ${var/copi/knott}
Here's a string I just knotted.
อย่างไรก็ตามมีวิธีการเปลี่ยนตัวแปรโดยไม่ต้องกำหนดให้กับตัวแปรหรือไม่? แนวคิดบางอย่างเช่นนี้
$ echo ${$(xclip -o -selection clipboard)/copi/knott}
bash: ${$(xclip -o -selection clipboard)/copi/knott}: bad substitution
ไวยากรณ์นี้ล้มเหลวเนื่องจากvar
ควรเป็นชื่อตัวแปรไม่ใช่สตริง
bash
ฉันจะยอมรับคำตอบนี้เพราะมันมีบางส่วนหลักฐานว่ามันเป็นไปไม่ได้ใน (และผลักฉันอีกครั้งเพื่อการโยกย้ายไปzsh
.)