Как создать функцию на основе команд, не определенных уже?

Я сделал это прежде с названным пользователем"s"и никакой пароль.

IIRC Вы устанавливаете оболочку пользователя на /sbin/shutdown. Prolly должен добавить его к /etc/shells.

2
29.10.2013, 16:40
3 ответа

Если они - псевдонимы, необходимо будет записать это:

myFunction() {
  export SOME_VAR=/path/to/main/folder
  . "$SOME_VAR/loading/stuff.sh" --quiet
  eval '
  loadApp1
  loadApp2
  loadApp3
  loadApp4'
}

псевдонимы расширены в то время, когда они читаются/анализируются. eval вызывает такой парсинг.

7
27.01.2020, 21:49

Я использовал бы сценарий, чтобы сделать это только для хождения его безопасная сторона:

#!/usr/bin/env bash
export SOME_VAR=/path/to/main/folder
source $SOME_VAR/loading/stuff.sh --quiet
loadApp1
loadApp2
loadApp3
loadApp4

Просто сохраните это в Вашем $PATH, сделайте это исполняемым файлом и выполните его вместо своей функции.

3
27.01.2020, 21:49

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

$ unknown() { foo; bar; baz; }
$ unknown
bash: foo: command not found
bash: bar: command not found
bash: baz: command not found
2
27.01.2020, 21:49
  • 1
    да, проблема выполняет функцию –  RSFalcon7 29.10.2013, 16:08
  • 2
    @RSFalcon7:... используйте его только после определения псевдонимов? (Я, вероятно, пропускаю что-то, здесь, но я думаю, что необходимо сначала определить их перед использованием этого "неизвестного ()" функция вообще? функция может быть определена прежде, но конечно будет только знать команды 'loadAppN', если к тому времени, когда Вы используете ее, те команды определяются...), –  Olivier Dulac 29.10.2013, 20:43
  • 3
    , функция загружается, псевдонимы с источником управляют и затем используют их, но в то время удар определяют функцию, те команды не определяются так выпускает ошибку, насколько я учился сегодня eval удар сил для определения команды во времени выполнения –  RSFalcon7 29.10.2013, 20:50

Теги

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