我正在寫一個bash腳本,在該腳本中,我運行了一個perl腳本,該腳本需要在其中包含雙引號的標誌。運行腳本通常情況下,你會跑bash腳本中的命令在標誌中的文字引號
$ perl script.pl -flag="something" -anotherflag="somethingelse"
在我的劇本,我使用的變量在這些標誌,但想保留雙引號,所以我有這樣的:
variable=foo
perl script.pl -flag=\"something\" -anotherflag=\"$variable\"
時我跑bash -x myscript.sh
,我看到它增加了環繞整個標誌單引號,既保持了雙引號,導致perl腳本錯誤:
perl script.pl '-flag="something"' '-anotherflag="foo"'
我也試過eval
整個事情(eval perl [...]
),它完全刪除了雙引號。我怎樣才能讓Bash運行帶雙引號的腳本?
我不明白 - 「試圖運行」中的雙引號是非常完整的,並且一個主要的短跑似乎已經神祕地消失了(也許是一個錯字?) - 你能更好地解釋你有什麼問題嗎? ?順便說一句,什麼是$變量,如果不是varoutput? – 2009-09-22 02:10:54
領先的破折號是一個錯字。固定。 – 2009-09-22 02:13:43