2

仮定:

  1. ファイルfのパスは〜/fです
  2. 「どのf」は「〜/ f」を示し、

それで、

which f | catを示しています~/f。したがってcat、ここでは、の引用に適用されます。~/fこれは、とは異なりcat ~/fます。

私の質問は、次の結果を達成するために、whichで構成される1つのコマンドをどのように使用できるかということです。事前に結果がわからない場合は、この構成を使用すると非常に便利です。現在、事前に結果がわからない場合は、最初に呼び出して、結果をコピーしてフィードに貼り付ける必要があります。catcat ~/fwhich fwhich fwhich fless

which f関連する質問は次のとおりです。の結果を変数に割り当てるにはどうすればよいですか?

どうもありがとう!

4

7 に答える 7

2

試す:

cat `which ~/f`

関連する質問の場合:

foo=`which ~/f`
echo $foo
于 2010-01-24T03:41:46.993 に答える
1

cat "`which f`"

于 2010-01-24T03:39:37.467 に答える
0

のようにbash

cat "$(which f)"
var="$(which f)"
于 2010-01-24T03:39:04.800 に答える
0

あなたが欲しいものは:

cat `which f`
于 2010-01-24T03:40:34.273 に答える
0

ではbash、次を使用できます。

cat "$(which f)"

の内容を出力しfますwhich。これは、バッククォートの解決策と同様に、コマンドの出力を内部で受け取り、それをコマンド$(...)のパラメーターとして使用しますcat

$(...)前者はより複雑な状況でネストできるため、私はバッククォート方式よりもを好みます。

の出力をwhich変数に割り当てるのも同様です。

full_f="$(which f)"

どちらの場合も、f犯罪と同じくらい凶悪な場合に引用符を使用するか、パスにスペースが含まれている方がよいでしょう:-)

特定のサブディレクトリの下にある同様の名前のファイルの小さなグループを編集する場合、私はよく同様のトリックを使用しました。

vim $(find . -type f -name Makefile)

これにより、すべてのmakefileに対して単一のvimセッションが提供されます(明らかに、多数の場合は、代わりにそれらをまとめて使用sedまたはperl変更しますvim)。

于 2010-01-24T03:47:39.727 に答える
0

プログラムでは、標準入力での出力を取得しwhich f | catます。次に、その標準入力を通過させるだけなので、結果はプレーンと同じになります。呼び出しでは、データがパラメーターとしてコマンドに渡されます。次に、ファイルを開いてその内容を表示します。catwhich fwhich fcat ~/fcat~/f

の出力をwhich fパラメータとして取得するcatには、他の人が答えているように、バッククォートまたは$():を使用します。

cat `which f`
cat $(which f)

ここで、シェルはの出力を受け取り、which fそれをのパラメータとして挿入しますcat

于 2010-01-24T03:48:49.760 に答える
0

catファイルの内容を標準出力にエコーします。を書くときstuff | cat、catが動作するファイルは標準の入力であり、の出力に接続されますstuff(パイプはファイルであるため、UNIXの他のほとんどすべてと同じです)。

Lispプログラマーがその単語を使用するという意味で引用は行われていません。

于 2010-01-24T05:00:54.713 に答える