私はフィッシュシェルを試してみましたが、いくつかのエイリアスを使うのに問題があります。したがって、最も簡単な方法は、Fishシェル関数でbashコマンドを実行することです。このような:
function fish_function
start bash
... bash commands ...
stop bash
end
それは可能ですか?
例: コマンド
pacman -Qtdq && sudo pacman -Rns $(pacman -Qtdq)
Fish Shellでは動作しません。変換する方法がわかりません。
答え1
確かに; and
魚はコマンドの置き換え&&
に使用されます()
。
したがって、コマンドを次のように変更します。
pacman -Qtdq; and sudo pacman -Rns (pacman -Qtdq)
動作する必要があります。
実際の質問に答えるために、通常bash
どんな方法でもコマンドのSTDINにリダイレクトして、Bashで実行されるステートメントを取得できます。ここでは文字列をサポートするZshを使用しており、ステートメントはBashの内容を印刷します。特定の変数):
% <<<'echo $BASH' bash
/bin/bash
ただし、通常はbash
s-c
オプションを使用することをお勧めします。たとえば、ここの文字列とパイプは複数のコマンドをうまく処理できず、ここのドキュメントは現在のシェルによって拡張されます(ただし、現在のシェルのサポートが必要です)。
全体的にbash -c
いつも安全な賭けのようです。
bash -c 'pacman -Qtdq && sudo pacman -Rns $(pacman -Qtdq)'
複数のコマンドの場合:
bash -c '
command1
command2
command3
'