1

Скажем, у меня есть два двоичных файла: двоичный1 и двоичный.

Каждый из них имеет свой собственный набор опций: options1 и options2.

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

binary1 options1 binary2 options2

Однако я хочу установить options2 самостоятельно и заставить их выполнить следующее:

binary1 options1 alias

где

alias='binary2 options2'

Есть ли способ заставить это работать под bash/tcsh? Я работаю под SLES 11 SP2 над 64-битной архитектурой.

2 ответа2

2

Вы должны иметь двоичный код1, а параметры1 должны быть такими, какими они хотят начать? Затем: определите функцию «что-то»:

something () {
   options2="...." #you define them as you want, either here or from another source
   binary1="$1" ; shift
   "$binary1" "$@"
   binary2  $options2
}

(и это определено в файлах входа bash)

И пусть они бегут:

something binary1 options1

Таким образом, они действительно могут сходить с ума на options1, например:

something touch file1 file2 "file3 with extra spaces" file4
0

mpirun не любит запускать псевдоним, как вы, наверное, уже разобрались. Лучше всего создать оболочку вокруг вашего исполняемого файла. Поэтому поместите в файл следующее (сделайте его исполняемым):

#!/usr/intel/bin/tcsh -f
exec /full/path/to/dplace -s1 -c 0-$TOP_PROC $*

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

Я предполагаю, что TOP_PROC уже определен в среде.

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