web-dev-qa-db-ja.com

deepin-terminal:子プロセスの実行に失敗しました

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では機能しません。

3
Milad Abbasi

-edeepin-terminalオプションは、ほとんどのターミナルエミュレーターと同様に、単純なコマンドを取ります。パイプラインは単純なコマンドではありません。

エラーは、端末がリテラル名cmatrix | lolcat(スペースとパイプ記号を含む)でコマンドを実行しようとしたために発生します。

代わりに、

deepin-terminal -m fullscreen -e sh -c "cmatrix | lolcat"

これは、パイプラインを実行するインラインスクリプトでshを実行します。

2
Kusalananda