zoukankan      html  css  js  c++  java
  • shell传递参数

    案例,参数比较

    找出传递参数最大的数字

    # vi compare_parameter.sh 

    #!/bin/bash
    if [ $# -ne 3 ] then echo "$0:number1 number2 number3 are not given" >&2 exit 1 fi n1=$1 n2=$2 n3=$3 if [ $n1 -gt $n2 ] && [ $n1 -gt $n3 ] then echo "$n1 is Bigest number" elif [ $n2 -gt $n1 ] && [ $n2 -gt $n3 ] then echo "$n2 is Bigest number" elif [ $n3 -gt $n1 ] && [ $n3 -gt $n2 ] then echo "$n3 is Bigest number" elif [ $1 -eq $2 ] && [ $1 -eq $3 ] && [ $2 -eq $3 ] then echo "All the three numbers are equal" else echo " I can not figure out which number is biger" fi

    通过参数描述变量案例

    # vi describe_parameter

    #!/bin/bash
    if
    [ $# -lt 3 ] then echo " Error! Not Enough Arguments " echo " $0 $@ " exit 1 fi func(){ return 1; } func echo '"$?":'"$?" # result from func

    echo '"$0":'"$0"

    echo '"$1":'"$1"

    echo '"$2":'"$2"

    echo '"$3":'"$3"

    echo '"$@":'"$@"
    echo '"$#":'"$#"
    
    echo
    '"$$":'"$$"
    echo
    '"$?":'"$?" # result from last one : "$$"

    $$  脚本运行的当前进程ID号

    $?  显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

    # chmod +x describe_parameter.sh 

    # ./describe_parameter.sh ouyangyewei yihaodian 23

    $@与$*的区别是?

    注意:$* 与 $@ 区别:

    相同点:都是引用所有参数。

    不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。

    作业

    编写shell脚本,要求输入5个参数,并将参数按与输入顺序相反的顺序输出。

    #!/bin/bash
    if [ $# -eq 5 ]
    then
    echo "$5"
    echo "$4"
    echo "$3"
    echo "$2"
    echo "$1"
    else
    echo " 请输入五个参数!"
    fi

     end

  • 相关阅读:
    符瑞艺 160809228_C语言程序设计实验2 选择结构程序设计
    页面布局class常见命名规范
    CSS学习笔记
    HTML学习笔记
    虚拟机Centos7设置ip地址,并ping真机ip
    vue单页面开发和多页面开发的概念,及优缺点?
    传统的DOM渲染方式?
    面试题
    通过电脑chrome调试手机真机打开的微信H5页面,调试电脑微信H5页面(转载自 乐乐熊小妹)
    常见前端面试题及答案
  • 原文地址:https://www.cnblogs.com/djlsunshine/p/9866667.html
Copyright © 2011-2022 走看看