我寫包含類似的命令的bash腳本:模式字符串中的匹配
echo Configure with --with-foo=\"/tmp/foo-*\"
我想這個命令生成的輸出如:
Configure with --with-foo="/tmp/foo-1.3.2"
但圖案WASN」由於它被嵌入到字符串中,因此被擴展。我把它通過使用命令替換工作:
echo Configure with --with-foo=\"$(echo /tmp/foo-*)\"
我覺得這是標準的/ bin/sh的解決方案,但是它的bash支持,不需要派生一個子shell的解決方案,以同樣的方式$((6 * 7))
可以代替$(expr 6 \* 7)
嗎?另外,是否有辦法將結果限制爲單個匹配?
也許之前'printf「使用--foo = \」%s \「配置配置\ n」/ tmp/foo- *'?雖然整個想法似乎有些脆弱,因爲'/ tmp/foo- *'可能不匹配,或者不止一個,這可能會導致奇怪的問題... – twalberg
@twalberg如果一切都很好,應該有一個匹配,所以如果沒有,我實際上想要生成一個錯誤。 –
是的,如果我所指的是「如果一切都不好」,所以你可能需要在'printf'之前使用一些邏輯來確保所有的都是,實際上...... – twalberg