【发布时间】:2021-03-23 11:59:42
【问题描述】:
给定一个 shell 命令字符串 (ls a\ b "c d" $f),是否可以 bash 将其解析为一个数组,最好是 bash 本身会在所有扩展之后看到它,就在执行之前 (([0]=ls [1]='a b' [2]='c d' [3]=<value of $f>))? IE。 REPL 的 read() 部分。
我想写一个自定义的bind -x函数,我需要解析当前的READLINE_LINE。我试过read -a,但这只需要处理反斜杠(例如"a b"被分成<"a>和<b">)
【问题讨论】:
-
嵌套命令呢,比如
c1 $(c2)? -
如果你必须使用 bash,precmd/preexec 怎么样?
-
感谢指点!嵌套命令应解析为令牌列表('c1' '$(' 'c2' ')' )。嗯,我应该修改问题。
标签: bash shell parsing readline