Код похож на это?
case "$5" in
-|+) eval '(('jd2=${jd1}${5}${6}'))' jd2date $jd2
esac
Если так, Вы могли бы назвать команду как так:
script arg1 arg2 arg3 arg4 + 6
или
script arg1 arg2 arg3 arg4 - 10
Вы можете заставлять код быть похожим на это:
eval '(('jd2=${jd1}+${5}'))' jd2date $jd2
Как команда назвали бы так:
script arg1 arg2 arg3 arg4 10
${5}
, ${6}
, ${jd1}
, и $jd2
заменены с содержанием их соответствующих переменных. Переменные, которые являются числами (например. $5
и $6
) позиционные параметры.
Так как Вам больше не нужен оператор, который будет помещен переменной, вызовом к eval
не необходимо. Ваш код может быть похожим на это:
(( jd2=${jd1}+${5} ))
jd2date $jd2
Или, с немного более чистым синтаксисом:
(( jd2 = jd1 + $5 ))
jd2date $jd2
Пользователь / Run / Run.SH
предположительно (учитывая name) Сценарий оболочки, который устанавливает вещи, которые необходимо запустить программу. Вероятные вещи установлены переменные среды и передают аргументы командной строки. Чтобы установить переменные среды и аргументы командной строки в GDB, используйте
set args = arg1 arg2
set env VAR1 = value1
set env VAR2 = value2
Прочитайте сценарий оболочки, чтобы увидеть, что он на самом деле делает.
Думаю, вы можете использовать этот трюк.
устанавливает точку останова при выходе.
gdb ..
b exit
run ..
bt
, чтобы вы могли узнать, где главный вызов функции выхода