Deepin-terminalを実行して簡単なコマンドを渡すために、以下のような簡単なスクリプトを作成しましたが、このスクリプトを実行するとエラーが発生します。
脚本:
#!/bin/bash
deepin-terminal -m fullscreen -e "cmatrix | lolcat"
エラー:
Failed to execute child process “cmatrix | lolcat” (No such file or
directory)
cmatrix
コマンドを渡すだけでは機能しますが、cmatrix | lolcat
では機能しません。
-e
のdeepin-terminal
オプションは、ほとんどのターミナルエミュレーターと同様に、単純なコマンドを取ります。パイプラインは単純なコマンドではありません。
エラーは、端末がリテラル名cmatrix | lolcat
(スペースとパイプ記号を含む)でコマンドを実行しようとしたために発生します。
代わりに、
deepin-terminal -m fullscreen -e sh -c "cmatrix | lolcat"
これは、パイプラインを実行するインラインスクリプトでsh
を実行します。