当前位置: 首页 > news >正文

会搭建网站找什么工作室设计上海地址

会搭建网站找什么工作室,设计上海地址,挣钱网站一小时两百,天津代理注册公司shell脚本编程系列 向函数传递参数 函数可以使用标准的位置变量来表示在命令行中传给函数的任何参数。其中函数名保存在$0变量中,函数参数则依次保存在$1、$2等变量当中,也可以使用特殊变量$#来确定参数的个数 在脚本中调用函数时,必须将参…

shell脚本编程系列


向函数传递参数

函数可以使用标准的位置变量来表示在命令行中传给函数的任何参数。其中函数名保存在$0变量中,函数参数则依次保存在$1$2等变量当中,也可以使用特殊变量$#来确定参数的个数

在脚本中调用函数时,必须将参数和函数名放在同一行 比如 func $value 10

#!/bin/bash
# passing parameters to a functionfunction addem {if [ $# -eq 0 ] || [ $# -gt 2 ]thenecho -1elif [ $# -eq 1 ]thenecho $[ $1 + $1 ]elseecho $[ $1 + $2 ]fi
}echo -n "Adding 10 and 15: "
value=$(addem 10 15)
echo $value
echo -n "Let’s try adding just one number: "
value=$(addem 10)
echo $value
echo -n "Now trying adding no numbers: "
value=$(addem)
echo $value
echo -n "Finally, try adding three numbers: "
value=$(addem 10 15 20)
echo $value

在这里插入图片描述
由于函数使用位置变量访问函数参数,所以无法直接获取脚本的命令行参数。即使在函数内部使用了$1和$2变量,但它们和脚本主体中的$1和$2变量不是一回事

#!/bin/bash
# trying to access script parameters inside a functionfunction badfunc1 {echo $[ $1 * $2 ]
}if [ $# -eq 2 ]
thenvalue=$(badfunc1)echo "The result is $value"
elseecho "Usage: badtest1 a b"
fi

在这里插入图片描述
要在函数中使用脚本的命令行参数,必须调用函数时手动将其传入

#!/bin/bash
# trying to access script parameters inside a functionfunction func7 {echo $[ $1 * $2 ]
}if [ $# -eq 2 ]
thenvalue=$(func7 $1 $2)echo "The result is $value"
elseecho "Usage: badtest1 a b"
fi

在这里插入图片描述

在函数中处理变量

  • 全局变量
    全局变量是在shell脚本内任何地方都有效的变量,如果在脚本的主体部分定义了一个全局变量,那么就可以在函数内读取它的值。类似的,在函数内定义了一个全局变量,那么也可以在脚本的主体部分读取它的值。默认情况下,脚本中定义的任何变量都是全局变量
    在这里插入图片描述

  • 局部变量
    无需在函数中使用全局变量,任何在函数内部使用的变量都可以被声明为局部变量。只需要在变量前面加上local关键字即可,local关键字可以保证变量仅仅在该函数中有效,如果函数之外有同名变量,那么shell会保持这两个变量的值互不干扰。

    #!/bin/bash
    # demonstrating the local keywordfunction func1 {local temp=$[ $value + 5 ]result=$[ $temp * 2 ]
    }temp=4
    value=6func1
    echo "The result is $result"
    if [ $temp -gt $value ]
    thenecho "temp is larger"
    elseecho "temp is smaller"
    fi
    

    在这里插入图片描述

  • 数组变量
    将数组变量当做当个参数传递,并不会起作用。如果试图将数组变量作为函数参数进行传递,则函数只会提取数组变量的第一个元素

    #!/bin/bash
    # trying to pass an array variablefunction testit {echo "The parameters are: $@"thisarray=$1echo "The received array is ${thisarray[*]}"
    }myarray=(1 2 3 4 5)
    echo "The original array is: ${myarray[*]}"
    testit $myarray
    

    在这里插入图片描述
    必须先将数组变量拆解成多个数组元素,然后将这些数组元素作为函数参数传递,而在函数内部,将所有的参数重新组合成一个新的数组变量

    #!/bin/bash
    # adding values in an arrayfunction addarray {local sum=0local newarraynewarray=(`echo "$@"`)for value in ${newarray[*]}dosum=$[ $sum + $value ]doneecho $sum
    }myarray=(1 2 3 4 5)
    echo "The original array is: ${myarray[*]}"
    # arg1=$(echo ${myarray[*]})
    # result=$(addarray $arg1)
    result=$(addarray ${myarray[*]})
    echo "The result is $result"
    

    在这里插入图片描述
    从函数中返回数组先用echo语句按照正确顺序输出数组的各个元素,然后脚本再将数组元素重组成一个新的数组变量。

    #!/bin/bash
    # returning an array valuefunction arraydblr {local origarraylocal newarraylocal elementslocal iorigarray=($(echo "$@"))newarray=($(echo "$@"))elements=$[ $# - 1 ]for (( i = 0; i <= $elements; i++ )){newarray[$i]=$[ ${origarray[$i]} * 2 ]}echo ${newarray[*]}
    }myarray=(1 2 3 4 5)
    echo "The original array is: ${myarray[*]}"
    arg1=$(echo ${myarray[*]})
    result=($(arraydblr $arg1))
    echo "The new array is: ${result[*]}"
    

    在这里插入图片描述

http://www.yayakq.cn/news/306461/

相关文章:

  • 拖拽式网站建设费用做网站和程序员哪个好点
  • 嘉瑞建设集团有限公司网站网站建设页面图
  • 网络营销推广的5种方法宜昌网站排名优化
  • 建设网站需要哪些工程建设沈阳网
  • 网站降权了怎么办wordpress搜索排序
  • 徐州住房与建设局网站品牌网站制作流程
  • 宜兴市住房和城乡建设局网站高端婚纱摄影网站
  • 太原网站制作价格网络推广方案怎么写
  • 安徽科技网站建设怎么制作网站登录
  • 兰州市建设局网站长春做网站企业
  • 备案网站名称注意事项厦门手机网站制作
  • 一份完整的网站策划书宣传片拍摄心得体会
  • 网站建设可信赖网站建设初级教程
  • 网站屏蔽ip乡村生态旅游网站建设方案
  • wordpress站内全文检索福州微信网站建设
  • 赣州做网站网页设计欣赏分析
  • 成都网站seo诊断大连专业html5网站建设
  • 网站界面设计的优点中国免费域名申请网站
  • 51做图片的网站学校网站建设需要多少钱
  • 长宁区网站建设设计国际网站怎么建设
  • 服务好的普通网站建设和田地seo
  • 中国建设银行网站会员登录如何为网站建设内容
  • 2018年公司做网站注意事项网站开发培训中心
  • 512m内存做网站养老网站建设的意义
  • 网站访问统计方案上海外贸公司注册流程及条件
  • 学校校园网站建设方案市场监督管理局查询系统
  • 网站建设需要到哪些知识你做的网站可视区域多少
  • 哪些网站可以做代理商站内seo和站外seo区别
  • 网站上放百度地图怎么wordpress 医院模板下载
  • 网站 手机验证码 实例ue5培训机构哪家强