Linux
如何簡化輸出重定向命令行?
我在我的 Linux 環境中經常使用輸出重定向命令,例如,
echo mymodule set number 10 >/proc/aaaa/bbbb_cmd
我想省略
echo .... >....
並使用這個命令mymodule set number 10
有人告訴我 bash 可以做到這一點,但我不知道該怎麼做?有人可以給我一個例子嗎?
似乎最好使用 shell 函式:
mymodule () { local IFS=' ' printf 'mymodule %s\n' "$*" >/proc/aaaa/bbbb_cmd }
這定義了 shell 函式
mymodule
。它將寫入字元串mymodule
,然後是您在命令行上提供的任何其他字元串,空格分隔為/proc/aaaa/bbbb_cmd
.將
"$*"
擴展為命令行參數列表,並與$IFS
作為分隔符的第一個字元連接(預設為空格,但我們在這裡明確將其設置為空格,以便函式在$IFS
已修改的上下文中仍然有效)成單個字元串。shell 函式定義可以放置在您通常放置別名的任何位置或您的
~/.bashrc
或等效文件中。該功能將在您啟動的下一個 shell 會話中可用。您可以像在問題中顯示的那樣使用這個 shell 函式:
mymodule set number 10