Як можна отримати ~/.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якщо у вас є такий каталог сьогодні.