Як можна отримати ~/.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'
$
Я спробував ці дві варіанти псевдоніму ~/.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" та інші ключові фрази, але я не знайшов нічого, для чого я вважаю, що це досить поширена проблема, щоб знайти інформацію про.
alias cdp="cd ~/projects"
. Неможливо зробити це в сценарії оболонки.
$HOME/bin
у випадку,PATH
якщо у вас є такий каталог сьогодні.