あなたの便宜のためにいくつかのエイリアスを作成しました。しかし、今は役に立つコマンドを送って助ける必要がありますが、ここにはエイリアスがいっぱいです。私はこれを試しましたが、type u
返されるものは
up && ap upgrade -y --show-progress && r && ap check && ap autoclean
エイリアスは次のとおりですu
。
alias a='alias'
a ap='apt-get'
a r='ap autoremove -y'
a up='ap update'
答え1
作成した別名(実行準備完了)を使用してCtrl-Alt-eコマンドを押します。Bashが拡張。Ctrl-Alt-ereadlineコマンドのデフォルトバインディングですshell-expand-line
。
BashにプッシュするたびにCtrl-Alt-eエイリアスレイヤーが1つずつ拡張されるため、必要なだけコマンドが拡張されるまで繰り返しプッシュします。
Metaキーがない場合はAlt交換するか、を押しますEscape Ctrl-e。
まだ一つあります。alias-expand-line
関数はデフォルトではバインドされず、エイリアスのみが拡張されます。
答え2
私も同様の質問をしました。スタックオーバーフロー(おそらくUnixとLinuxでリリースする必要があります)。
私の解決策はbash関数を書くことでした。
xtrace() {
local eval_cmd
printf -v eval_cmd '%q' "${@}"
{ set -x
eval "${eval_cmd}"
} 2>&1 | grep '^++'
return "${PIPESTATUS[0]}"
}
これにより、xtrace u
次の内容が印刷されます。
++ apt-get update
++ apt-get upgrade -y --show-progress
++ apt-get autoremove -y
++ apt-get check
++ apt-get autoclean
これは実際に渡したエイリアスを実行するので、望ましくない場合はu
@MichaelHomerのソリューションがより良いアプローチです。また、チェーンによって&&
エイリアスのコマンドのいずれかがゼロを返さない場合、実行は停止し、これまで拡張されたエイリアスのみが表示されます。