Bash
有沒有一種方便的方法可以將 bash 命令列表包裝到 rlwrap 中?
感謝superuser.com 上的一個問題,我發現了這個非常方便的
rlwrap
工具。它滿足了我的需求(即,將命令歷史添加到另一個命令行工具),但我想知道如何使用它將命令歷史添加到“複合”shell 命令,就像原型一樣
$> while read line; do echo "i read $line"; done hi i read hi ^D
當我將
while
循環放在 shell 腳本中並像 一樣執行它時rlwrap ./whilereadline.sh
,就可以了。但我想知道如何在不需要額外文件的情況下做到這一點*,*有點像
$> rlwrap (while read line; do echo "line: $line"; done) bash: syntax error near unexpected token `while'
有任何想法嗎?
你有沒有嘗試過
rlwrap sh -c 'while read line; do echo "i read $line"; done'
rlwrap
需要一個可以執行的命令,而()
語法誘導的 subshell 則不需要。sh -c ...
然而,是一個命令。替換sh
為bash
您喜歡的任何外殼。
rlwrap
需要一個程序來執行,它不能解釋命令本身。您可以將所需的 shell 程式碼包裝在bash -c
命令中:rlwrap bash -c 'while read line; do echo "line: $line"; done'
請注意,根據您要為此使用的程式碼,引用可能會變得有些難看。