2

引数としてテキスト ファイル (出力をフォーマットするため) を必要とするコマンド ライン ユーティリティがあります。純粋な値のみが必要で、書式設定は必要ないため、値を取得するための 1 行のスクリプトが必要です。

テキスト ファイルtemplate.fileには以下のみが含まれます。

$1

これが私のユーティリティの例です:

vclient -h 10.0.0.131:3002 -t template.file -g getTempKist

私が欲しいのは次のようなものです:

vclient -h 10.0.0.131:3002 -t $(echo '\$1') -g getTempKist

echo外部テキスト ファイルの代わりに (またはおそらく代替)の結果を使用する方法を知っている人はいますか?

誰かが助けてくれることを願っています。

マーカス

4

3 に答える 3

4

次の 2 つのことを試すことができます。

まず、おそらく次のように入力に stdin を使用できます。

echo '$1' | vclient -h 10.0.0.131:3002 -t - -g getTempKist

一部のツールは、stdin を表す-ファイル名引数の特別な値をサポートしています。-ただし、これはコマンドの実装に依存します。

bashシェル (または などzsh) がこれをサポートしている場合に使用できる 2 番目のことは、プロセス置換を使用することです。

vclient -h 10.0.0.131:3002 -t <(echo '$1') -g getTempKist
于 2015-03-24T10:31:36.397 に答える
2

echo単に一時ファイルの作成を回避する方法としてを使用しようとしている場合は、 stdin. 多くのツールがこれをサポートしています:

$ cat foo.json 
[1,2,3]

$ python -m json.tool foo.json 
[
    1,
    2,
    3
]

$ python -m json.tool /dev/stdin
[1,2,3]  <-- Paste this into the terminal then press Ctrl-D
[
    1,
    2,
    3
]

したがって、OP のツールの場合:

$ vclient -h 10.0.0.131:3002 -t /dev/stdin -g getTempKist
\$1  <-- Paste this into the terminal then press Ctrl-D
于 2016-07-11T14:28:17.487 に答える
0

`` で囲まれたコマンド (申し訳ありませんが、コードの書式設定によりこれらの文字で問題が発生します) を使用すると、最初にコマンドの結果が評価されるため、echo` で囲むとうまくいく場合があります。

于 2015-03-24T10:19:54.533 に答える