前のコマンドで生成されたシェル印刷にアクセスします。

前のコマンドで生成されたシェル印刷にアクセスします。

ファイルパスを含むシェルからメッセージを印刷するコマンドを実行する必要があります。

>> myCommand.py
>> outputs path to file

パスにアクセスしてファイルを自動的に開くように(コピーしてシェルに貼り付けるのではなく)、このメッセージがどこに保存されているかを知りたいです。

ベストアンサー1

重複しているようですが、これまでに見つけたすべての質問/回答は互いに異なるため、あなたの質問に直接答えることはできません。少なくとも全体の問題ではありません。

簡潔な答えは「いいえ」です。 tcsh、Bash、Zsh、またはFish(または私が知っているすべてのシェル)には、最新のコマンドの標準出力をキャプチャする自動変数はありません。シェルは、コマンドがユーザーに渡されるかどうかを知りません。実行中は、単一行、複数行のストリームを出力したり、端末操作コマンド(thinkまたはすべての呪いベースのユーティリティ)を実行したいとしますvinanoこれは、いくつかのコマンドの出力が続く可能性があるため、メモリの問題かもしれません。 、え、え...

しかしそこにはいこれを自動化する方法。コマンドの出力を表示したいファイル名が参照する結果ファイルを事前に知っている場合は、シェルのコマンド置換を使用して次のことができます。

> less $(myCommand.py) # POSIX (Bash, Zsh) or
> less (myCommand.py) # Fish Shell

もちろん、ファイルを開くために使用したものに置き換えてくださいless

以下を使用するために変数のファイル名を取得することもできます。

> OUTFILE=$(myCommand.py)
> echo $OUTFILE
> less $OUTFILE

もちろん、変数名は必要に応じて指定できます。

あるいは、結果を出力することもできます。そして変数でキャプチャします。

> OUTFILE=$(myCommand.py | tee /dev/tty)
filename
> less $OUTFILE # views "filename"

最後に、ここで確認できるいくつかの非常にハッキングされたソリューションがあります。このスタックオーバーフローの質問すべてのコマンドは自動的にキャプチャされますが、すべてのコマンドには欠点があります。

おすすめ記事