[英]Using a plus sign at the end of a bash function name
我需要創建一個名稱以+
結尾的 bash 函數。 例如foo+
。 這些工作:
+foo() { true; }
foo+bar() { true; }
但這不會:
foo+() { true; }
-bash: syntax error near unexpected token `}'
為什么不? 它不會抱怨+
。 有沒有解決的辦法?
發生這種情況是因為+()
是一個 extglob(啟用時),所以 bash 看到someglob { true; }
someglob { true; }
這是無效的。
這是它在沒有 extglob 的情況下工作:
$ shopt -u extglob
$ foo+() { echo bar; }
這是它與 extglob 的區別:
$ shopt -s extglob
$ foo+() { echo bar; }
bash: syntax error near unexpected token `}'
解決方法包括在()
之前添加一個空格或使用function
關鍵字:
foo+ () { echo bar; }
function foo+() { echo bar; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.