Изменение каталога в файле bash-скрипта

Я провел много времени в мире DOS, где работает CD (без пробела).

Я попытался сделать то же самое в Ubuntu, определив файл bash в /usr/local /bin с именем "cl.."

его тело

#!/bin/bash
cd ..

У меня есть chmod +x в файле.

Это не работает, Ubuntu не жалуется на команду не найдена.

что я сделал не так?

1 ответ

Сценарии оболочки Unix сильно отличаются от файлов bat DOS в том смысле, что они выполняются как отдельные процессы, а не просто загружают команды в текущую командную строку, как это происходит с окнами. cmd.exe

То, что вы действительно хотите, это псевдоним или функция bash.

И то и другое alias cd..='cd ..' а также cd..() { cd ..; } будет делать трюк, первый определяет псевдоним, второй - функцию оболочки.

Чтобы сделать его доступным и в последующих оболочках, его следует записать в .bash_profile, .bashrc или же .profile файл в вашем домашнем каталоге. Какой именно файл, зависит от ваших настроек распространения, проверьте man bash, /etc/profile а также /etc/*bashrc для деталей.

man bash поможет вам в дальнейшем с доступными командами.

Если вы ищете более удобную оболочку, чем bash, то я предлагаю вам изучить zsh пакет.

Другие вопросы по тегам