1

通常、私は物事を別々のアクションに分割し、出力をコピーして別の入力に貼り付けます。

$ which git
/usr/local/bin/git
$ sudo mv git-credential-osxkeychain /usr/local/bin/git

出力を入力に変換する簡単なハックはありますか? 何かのようなもの: $echo which wget | sudo mv git-credential-osxkeychain

4

4 に答える 4

1
set -vx
myGit=$(which git)
gitDir=${myGit#/git} ; gitDir=${gitDir#/bin}/git
echo sudo mv git-credential-osxkeychain ${gitDir}

set -vxこれで必要なアクションが確実に実行される場合は、最後の行のと を削除しechoます。

必要なキーストロークの数を減らすことはおそらく可能ですが、このバージョンは、どのような手法が使用され、どのように機能するかを理解しやすいと思います.

IHTH

于 2012-10-15T21:29:53.480 に答える
0

パイプ構文を使用する場合は、を参照してくださいxargs

于 2012-10-16T17:08:47.833 に答える
0

その答えは、チルロシェルターが言ったことだろう。

うまく$echo which wget | sudo mv git-credential-osxkeychainいかないのは、パイピングが前のコマンドの stdout を次のコマンドの stdin にリダイレクトするためです。この場合、movestdin からの入力は受け取りません。

興味深いのはwhich git

/usr/local/bin/git

しかし、あなたはに移動git-credential-osxkeychainしています

/usr/local/git/bin/

あの二人は似合わない。タイプミスか何かですか?

于 2012-10-15T23:54:38.010 に答える
0

コマンド置換を使用する$(command)

sudo mv git-credential-osxkeychain $(which git)

これにより、コマンドがその出力に置き換えられます。http://tldp.org/LDP/abs/html/commandsub.htmlですべてを見つけることができます

于 2012-10-15T21:08:24.160 に答える