〜/ .bashrcが実行されるとき(ターミナルを開くとき)ではなく、実行時に置換~/.bashrc
を評価$()
するエイリアスをどのように取得しますか?
このコマンドを頻繁に実行して、エイリアスを追加します。
svn diff -r $(svn info | grep ^Revision | awk {'print $2'}):HEAD $(svn info | grep ^URL | awk {'print $2'}) | colordiff
ただし、~/.bashrc
エイリアスとして追加すると、ターミナルを開いたときの評価にハードコードされていることがわかります。
$ alias
alias svnbranch='svn diff -r 178184:HEAD svn+ssh://branches/t4252 | colordiff'
端末を開いた場合、~
エラーが発生します。
svn: E155007: '/home/dotancohen' is not a working copy
svn: E155007: '/home/dotancohen' is not a working copy
svn: E155007: '/home/dotancohen' is not a working copy
svn: E155007: '/home/dotancohen' is not a working copy
$ alias
alias svnbranch='svn diff -r :HEAD | colordiff'
$
私はでエイリアスのこれら2つのバリエーションを試しました~/.bashrc
が、どちらも同じ効果があります(予想通り)。
alias svnbranch="svn diff -r $(svn info | grep ^Revision | awk {'print $2'}):HEAD $(svn info | grep ^URL | awk {'print $2'}) | colordiff"
alias svnbranch="svn diff -r `svn info | grep ^Revision | awk {'print $2'}`:HEAD `svn info | grep ^URL | awk {'print $2'}` | colordiff"
実行時に置換~/.bashrc
を評価するためにエイリアスを取得するにはどうすればよい$()
ですか?
さらに、Googleでこの状況をどのように検索しますか?「bashrc置換」、「bashrc遅延置換」、およびその他のキーフレーズをグーグルで検索しようとしましたが、情報を見つけるのに十分な一般的な問題であると思われるものについては何も見つかりませんでした。
@WarrenYoung:正解です。この特定のインスタンスはスクリプトである可能性があります。しかし、私はまだ他のもののためにエイリアスを好むので私は答えを知りたいと思います、そして私は確かにこれに出くわすでしょう。質問を一般化して、「スクリプトである可能性があるのに、Bashがエイリアスをサポートする理由」にまとめることができます。
—
dotancohen 2015
なぜ反対票か。質問を改善するにはどうすればよいですか?私は例、失敗した試み、そしてグーグルで試したキーフレーズさえ提供しました。
—
dotancohen 2015
@dotancohen:個別に質問するべきだと思います。ここで部分的な答えを示します
—
ウォーレンヤング
alias cdp="cd ~/projects"
。シェルスクリプトではできません。
$HOME/bin
あるPATH
場合、ほとんどの* ixタイプのシステムはに入れます。