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