如何在保留引用的同時將shell參數存儲在文件中供以後使用?在保存引用時將shell參數存儲在文件中
要說清楚:我不想傳遞這些論據,可以使用"[email protected]"
輕鬆完成。但實際上需要來將它們存儲在後面的文件中使用。
#!/bin/sh
storeargs() {
: #-)
}
if "$1"
then
# useargs is actuall 'git filter-branch'
useargs "[email protected]"
storeargs "[email protected]"
else
# without args use those from previous invocation
eval useargs $(cat store)
fi
。
$ foo 'a "b"' "c 'd'" '\'' 'd
e'
$ foo # behave as if called with same arguments again
問題可能歸結爲如何使用報價一般共同工具串(AWK,Perl中,...)。我寧願一個解決方案,不會使引用的字符串不可讀。 store
的內容應該看起來或多或少像我在命令行中指定的內容。
問題很複雜,因爲要引用的參數/字符串可能已經包含任何類型的有效(shell)引用和/或任何類型的(顯着的)空格,所以無條件地在每個引號周圍放置單引號或雙引號參數或每行存儲一個參數將不起作用。
嗯。 %q非常好,但只適用於bash內建的printf。 – 2011-05-20 14:17:16
用於提示'%q',簡單而有效。 – anubhava 2011-05-20 14:19:33
謝謝,這對我很有用。不過,一個不需要bash的解決方案會更好。此外,輸出看起來不錯,但沒關係。 $'...'這種引用對我來說是新的。 – tarsius 2011-05-20 14:48:09