Я ищу способ заставить следующий псевдоним работать для любого имени файла.
alias dim='cd /home/jason/Documents; vim *the desired file*; cd'
Мне интересно, есть ли способ, которым я мог бы изменить этот псевдоним, чтобы я мог ввести любое имя файла как таковое:
dim *the desired file*
И все же получить тот же результат. В принципе, есть ли способ вызвать то, что введено после псевдонима, в сам псевдоним? Что-то вроде:
alias dim='cd /home/jason/Documents; vim <what is typed after alias>; cd'
Ответы:
Нет, вы не можете сделать это, используя псевдонимы оболочки. Вам нужно использовать функцию.
Вот простая функция для выполнения работы:
Функция
dim
примет имя файла в качестве аргумента. Вы можете поместить этот фрагмент кода в конец вашего~/.bashrc
файла, а затем запустить его как:Замените
file.txt
на любое имя файла, которое вы хотите.Для того, чтобы запустить его из текущего сеанса оболочки,
source
в~/.bashrc
файл первым:источник
$1
указывает на первый позиционный параметр или аргумент функции .. думаю, это как способ ввода функции или скрипта .. как и все языки программирования,bash
также использует это .... вы будете найти многочисленные ресурсы об этом в Google ..Не с псевдонимами, используйте функции вместо.
Со страницы руководства Bash :
Таким образом, ваша функция может быть:
источник
cd
привести вас в ваш домашний каталог;cd ..
поднимается на один уровень вверх.cd -
приведет вас к предыдущему каталогу, из которого выcd
редактировали.$*
все равно что$1 $2 $3...
просто передать весь список vim, а не первый введенный вами аргумент. И, как сказал Чрики,cd -
вернется в предыдущий каталог (тот, которым вы были, когда вызывали функцию).