このコマンドは端末でのみ実行でき、起動コマンドまたは実行コマンドGUIボックスでは実行できないのはなぜですか。

このコマンドは端末でのみ実行でき、起動コマンドまたは実行コマンドGUIボックスでは実行できないのはなぜですか。
$(run-parts --list --reverse --regex '^KeePassXC-[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]-x86_64\.AppImage' bin | head -n 1)

(上記のコマンドの目的は、にあるKeePassXCの最新バージョンを実行することです~/bin。KeePassをアップグレードするたびに開始項目を変更したくありません。)

上記のコマンドが機能しているようです端末で実行する場合。ただし、Alt+を押してF2GUIの「コマンドの実行」ボックスを取得するとエラーが発生します。

Failed to execute child process "$(run-parts" (No such file or directory)

さらに、起動アプリケーションに次のコマンドを入力しようとすると、同様の問題が発生します。

Could not execute '$(run-parts --list --reverse --regex '^KeePassXC-[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]-x86_64\.AppImage' bin | head -n 1)'
Failed to execute child process "$(run-parts" (No such file or directory)

/私の間違いは、アプリケーションの実行/コマンドの実行GUIボックスが代わりにコマンドを実行している可能性があると思いますか~?だから私は私の命令を「修正」しました。つまり、binコマンドを削除してこれに変更しましたが、/home/m/bin役に立ちませんでした。

端末以外の場所でこのコマンドを実行できないのはなぜですか?

ベストアンサー1

エラーメッセージ:

Could not execute '$(run-parts --list --reverse --regex '^KeePassXC-[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]-x86_64\.AppImage' bin | head -n 1)'
Failed to execute child process "$(run-parts" (No such file or directory)

これは、コマンドを入力するボックスがシェルではなくリテラルコマンドを実行しようとしていることを示します。シェルはコマンドを解析し、コマンド置換を拡張し、パイプラインを実行するrun-partsなどのタスクを実行しますhead

ボックスはシェルではなくコマンドでもないので簡単なコマンド(オプションのコマンド)、元のコマンドを呼び出す必要があります。皮をむいた。次のコマンドを使用して、GUIボックスでこれを実行できます。

sh -c 'your command'

your commandもともと実行しようとしたコマンドはどこにありますか?一重引用符引数にsh -c他の一重引用符を含めることはできないため、一重引用符を二重引用符に置き換えます。

おすすめ記事