Bash

擴展文件萬用字元不適用於 bash 腳本中的 cat

  • August 15, 2012

當我在終端中輸入

cat ~/my/+(a|b)/doc

它從 ~/my/a/doc 和 ~/my/b/doc 都可以讀取,但是當我將該命令放入bash腳本時:

#!/bin/bash
cat ~/my/'+(a|b)'/doc

我得到錯誤:

cat: ~/my/+(a|b)/doc: No such file or directory

bash不能在腳本中使用擴展萬用字元嗎?

你必須打開extglob

#!/bin/bash
shopt -s extglob
cat ~/my/+(a|b)/doc

+()``extglob是擴展模式,僅在啟用時才被辨識。預設情況下extglob,在互動式 shell 中打開,在非互動式 shell 中關閉。

引用自:https://unix.stackexchange.com/questions/45543