这是我的功能
validateFile()
{
echo "$1" | grep '.zip$' > /dev/null
if [ $? -eq 0 ]
then
return 1
else
return 0
fi
}
printf "\n Enter Source File1 Path: "
read file1
res=$(validateFile $file1);
echo "$res"
But nothing store in **"res"** store nothig
validateFile函数验证文件是否为zip文件,如果是,则返回2 else 0.并返回存储在res变量中的值。但问题是res变量中没有值存储。
答案 0 :(得分:1)
虽然shell脚本提供了一个return语句,但是你唯一可以返回的是函数自己的退出状态(0到255之间的值,0表示“成功”)。
返回值的最佳方法是echo
,如下所示:
validateFile()
{
echo "$1" | grep '.zip$' > /dev/null
if [ $? -eq 0 ]
then
echo 1
else
echo 0
fi
}
printf "\n Enter Source File1 Path: "
read file1
res=$(validateFile $file1);
echo "$res"
答案 1 :(得分:1)
你想要的可能是
validateFile()
{
echo "$1" | grep '.zip$' > /dev/null
if [ $? -eq 0 ]
then
# return appropriate value
return 1
else
return 0
fi
}
printf "\n Enter Source File1 Path: "
read file1
# call function
validateFile $file1
# use return code
res=$?
echo "$res"
答案 2 :(得分:0)
$(...)
调用子shell并捕获其标准输出。所以你可以做以下两件事之一:
foo() {
fooresult=1
}
foo
echo $fooresult
或者这个:
foo() {
echo 1
}
fooresult=$(foo)
echo $fooresult
答案 3 :(得分:0)
<input class="cb" id="rd" type="checkbox">
<input class="cb" id="fd" type="checkbox">
var fd=$('.cb#fd').is(':checked');
var rd= $('.cb#rd').is(':checked');