По сути, я хочу создать быстрый набор команд, чтобы я мог набрать в терминале и сделать это:

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 ответ1

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 . В Баш это означает первый аргумент, так что если я 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 . Это может указывать на другой язык и указывать на его двоичный файл.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .