вернуть только значение из функции сценария оболочки в другой сценарий оболочки - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть одно имя скрипта 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

...