У меня есть одно имя скрипта check.ksh
, которое будет проверять некоторые функции и иметь для этого различные функции:
!/bin/ksh
print "start"
val1=$1
val2=$2
func=$3
checkfunc() {
if [[ $val1 != $val2 ]]
then
print "argument differs"
exit 0
else
print "argument same"
exit 1
fi
}
anotherfunc() {
print "blah blah"
}
$func 2&1> testlog.log
print "end"
и другое имя скрипта-оболочки wrapper.ksh
, которое будет использоваться в качестве скрипта-оболочки * 1006.*:
#!/bin/ksh
wfunc() {
check.sh $1 $2 $3
[[ $? -eq 0 ]] && printf "different argument passed" || printf "same argument passed"
}
wfunc $1 $2 $3
когда я запускаю ./wrapper.sh test1 test1 checkfunc
, он должен распечатать вывод как "same argument passed"
как вызываемый скрипт check.sh
, выход с 1
но всегда я получаю $?как 0
Я пытался напечатать какое-то значение или используя return, но с той же проблемой, можем ли мы вернуть только выходные данные функции в wrapper.ksh
note :Я не могу удалить отпечаток и другие данные в check.sh
Я могу редактировать только содержимое checkfunc()
в check.sh