
シェル コマンドの結果を別のコマンドの引数として使用するのではなく、実際に実行する方法はありますか?
たとえば、フォルダー内のすべての実行可能ファイルに対して '--version' を実行したいとします。次のようになります。
ls /usr/bin/ | --version
find/exec を使用する方法を見つけました:
find /usr/ -name valgrind -exec {} --version \;
しかし、私はそれを ls でやりたいのです。45 分以上検索しましたが、助けが見つかりません。
答え1
これを試してみてください:
printf '%s\n' /usr/bin/* | while IFS= read -r cmd; do "$cmd" --version; done
答え2
特定のディレクトリ内のすべての実行可能ファイルを--version
オプション付きで実行しようとしている場合は、次のワンライナーを試してください (例のディレクトリとして /usr/bin を使用)。
for f in /usr/bin/*; do [ -x "$f" ] && $f --version; done
答え3
答え4
シェル出力をシェル入力として再評価するには、 を使用しますeval
。
eval "$(your command here)"