Функция оболочки лучше, чем та же функция в ПУТИ?

Я был немного смущен посторонним использованием функций оболочки.

Мое определение функции оболочки: функция, которая находится в .bashrc, таким образом что

.bashrc

--- other default bash configs ----

extract() {     // I call this a shell function
   ....
}

Мое определение функции помещается в ПУТЬ: файл, который папка в ПУТИ. Например, у нас есть файл ~/bin/screen/convert.screen

Для добавления файла и других файлов в папке к моему ПУТИ у меня может быть следующий ПУТЬ

 export PATH='/Users/masi/bin/screen:' 

Я хотел бы знать, когда я должен поместить функцию как функцию оболочки входа в систему и когда к моему ПУТИ. Я предпочитаю последнего в данный момент, начиная с бывших затрат увеличений на обслуживание.

Который является преимуществом сделанной пользователем функции оболочки, которую не имеет функция в Вашем ПУТИ?

1
задан 26.12.2015, 23:18

3 ответа

Функции Shell легко изменяются и сохраняются. Необходимо добавить их к ПУТИ, когда Вы будете знать, что Вам всегда будут нужны они (даже если это будет намного менее часто), в противоположность временной вещи. Нет никакой потребности загрузить такой большой емкостно-резистивный файл, который Вы продолжаете добавлять к тому, когда Вы будете знать, что Вам не будет нужно все во всем этом время. Если существует большая функция, Вы используете менее часто, но это очень важно, сделайте это доступным из Вашего PATH таким образом, можно получить доступ к нему только при необходимости в нем.

4
ответ дан 12.12.2019, 08:19
  • 1
    ТАКИМ ОБРАЗОМ, Вы подразумевает, что приложения в ПУТИ загружаемые при входе в систему. Их подписи вместо этого поставит под списком, который представляет программы в ПУТИ. Если Вы СНАБЖАЕТ ВКЛАДКАМИ, то этот список ищет.---я никогда имеет таких больших приложений оболочки, которые замедляет меня компьютер вниз. Кажущееся, что лучше добавлять очень большие приложения оболочки к Вашему ПУТИ, если они вызывает Вас уменьшения скорости иначе. – Léo Léopold Hertz 준영 26.07.2009, 14:57

Помогло бы, согласились ли Вы с ещепринятыйописанием функции оболочки как функция, записанная в файле (сценарий), который может получаться для загрузки в к оболочке и использоваться в других сценариях и командах оболочки.

Если мы берем эту интерпретацию термина, то окружаем функции, делают Вашу жизнь легче с 'функциями' в Ваших сценариях и командах.

Идя далее, Вы могли бы также считать запись Ваших менее часто используемых 'функций' в отдельном файле и хранении этим с Вашими другими сценариями. При необходимости в них, Вы могли просто получить тот сценарий в свою оболочку.

1
ответ дан 12.12.2019, 08:19
  • 1
    Таким образом, функция оболочки была функцией, полученной в Вашем ПУТИ, таким образом, что Вы загружает и называет ее при необходимости. – Léo Léopold Hertz 준영 26.07.2009, 15:11
  • 2
    @Masi, и также функция, записанная в Вашем файле сценария, использовала, который доступный, чтобы использовать в нем. да. – nik 26.07.2009, 15:16

Я использую функции оболочки для вещей, которые являются довольно маленькими и автономными, и которые являются командами помощника для оболочки, а не полных программ самостоятельно. После того как что-то становится надлежащей программой, я описываю ее как таковой и перемещаю ее в каталог bin в моем $HOME папка (который уже находится в моем PATH).

Вот пример:

# Start mpd (if necessary), search for music using mpc, play music.
mp-start()
{
    ps -C mpd > /dev/null || mpd
    mpc search any $1 | mpc add -
    mpc play
}

Это - функция не программа. Существует очень мало к нему, и я только собираюсь использовать его, если я уже работаю в оболочке.

Я также нахожу это инструментом для очистки для помещения всех функций для моей оболочки в отдельный файл (.bash_functions для меня, но я думаю, что Вы - Z, окружают пользователя, поэтому корректируются соответственно), который я получаю из основного емкостно-резистивного файла своей оболочки. Последняя подсказка должна добавить что-то вроде этого к Вашим псевдонимам:

alias refunction='vim ~/.bash_functions; source ~/.bash_functions'

Это позволяет Вам создавать новую функцию на лету и иметь ее быть сразу доступным, после того как Вы сделаны, редактируя.

1
ответ дан 12.12.2019, 08:19

Теги

Похожие вопросы