По сути, я хочу создать быстрый набор команд, чтобы можно было вводить их в терминал и делать следующее:
cd /path/to/folder/of/symlink
sudo rm -f symlink
sudo ln -s /new/path/of/symlink
cd /new/path/of/symlink
Я работаю в компании, чье программное обеспечение размещено в центральном месте и использует символические ссылки для обхода проблем, созданных работой из ветви репозитория subversion (или чего-то еще), поскольку программное обеспечение полагается на определенные пути для запуска. Моя дилемма заключается в том, что мне, как правило, приходится регулярно переключаться между различными ветвями и стволом (несколько раз в день). Поэтому я хотел бы по крайней мере создать какой-то тип скрипта, который я могу запустить в терминале, и ввести уникальный пример команды:
./subchange trunk
или
./subchange branch1
Я не против того, чтобы жестко кодировать вышеперечисленное для каждой папки, на которую мне нужно переключиться, или создавать уникальный идентификатор для каждой, чтобы немного облегчить себе жизнь, но я не уверен, как на самом деле создать скрипт, чтобы я мог использовать его как пользовательскую команду, или какой тип скрипта мне нужно использовать, чтобы он работал в Linux. Поэтому любой совет/помощь были бы полезны для меня на этом этапе.
решение1
Если скрипт исполняемый и его родительский каталог находится в вашем $PATH
, то вы можете использовать его как команду. Например, вы можете создать bash-скрипт из команд, которые вы упомянули:
#!/bin/bash
cd /path/to/folder/of/symlink
sudo rm -f symlink
sudo ln -s /new/path/of/symlink
cd /new/path/of/symlink
Затем вы можете сохранить это как файл, subchange
и сделать его исполняемым с помощью chmod +x subchange
. У меня есть каталог скриптов в моей системе (например /tech/scripts
), который я добавляю в свой $PATH
. Часто $PATH
переменная окружения задается в ~/.profile
, ~/.bashrc
, /etc/bashrc
или подобном файле. Вы можете добавить свой каталог, выполнив:
export PATH=/tech/scripts:$PATH
Если вы добавили это в файл запуска, вам нужно будет перезапустить оболочку или источник (например source ~/.bashrc
, ). Теперь вы можете использовать subchange
в командной строке, и она выполнит эти команды. Чтобы добавить аргумент к команде, вы можете использовать оператор $1
. В bash это означает первый аргумент, поэтому если я это сделаю, subchange trunk
то $1
будет trunk
. Затем вы можете добавить это в свой скрипт по мере необходимости:
#!/bin/bash
cd /path/to/folder/of/symlink
sudo rm -f symlink
sudo ln -s /new/path/$1/symlink
cd /new/path/$1/symlink
В верхней #!
части файла находится файл, который называетсяпритон(она двигается... она двигается...). Для скрипта в системе unix он сообщает системе, через какой двоичный файл запускать следующие команды. В этом случае мы указываем , /bin/bash
потому что хотим выполнить этот файл как команды bash, а двоичный файл bash находится в /bin
. Это может указывать на другой язык и указывать на его двоичный файл.