zoukankan      html  css  js  c++  java
  • shell 5参数

    1. shell传递参数

    我们可以在执行shell脚本时,向脚本传递参数。

    $nn代表数字。$0表示执行的脚本名称,$1表示第1个参数,$2是第2个参数.
    shell默认支持9个参数,使用shift可以传递更多的参数。
    $#,${#*},${#@} 传递到脚本的参数个数
    $$脚本运行的当前进程的ID号
    $!后台运行的最后一个进程的ID号
    $? 显示上个命令的执行情况。0表示没有错误,其他任何值表明有错误。
    $@一个单字符显示所有向脚本传递的参数
    $*以一个单字符显示所有向脚本传递的参数
    $-显示shell使用的当前选项,与set命令功能相同
    ${*:1:3},${*:$#}表示多个参数
    ``` #shell #!/bin/sh echo "shell脚本名称:" $0 #shell脚本名称: 829test.sh echo "第一个参数:" $1 #第一个参数: 3 echo "第二个参数:" $2 #第二个参数: 4 echo "脚本的个数:" $# #脚本的个数: 2 echo "当前进程ID:" $$ #当前进程ID: 6673 echo "后台运行的最后一个进程ID:" $! #后台运行的最后一个进程ID: echo "上个命令的执行结果:" $? #上个命令的执行结果: 0 echo "参数作为字符串显示*:" $* "$*" #参数作为字符串显示*: 3 4 3 4 echo "参数作为字符串显示@:" $@ "$@" #参数作为字符串显示@: 3 4 3 4 ```

    2. (@与)*区别

    #!/bin/sh
    #$@ vs $* 
    
    func1(){
    	echo "$@"
    	for d in "$@";do
    		echo $d
    	done
    }
    func1 1 2 '3 4' '"5 6" 7'
    
    func2(){
    	echo $@
    	for d in $@;do
    		echo $d
    	done
    }
    func2 1 2 '3 4' '"5 6" 7'
    
    func3(){
    	echo "$*"
    	for d in "$*";do
    		echo $d
    	done
    }
    func3 1 2 '3 4' '"5 6" 7'
    
    func4(){
    	echo $*
    	for d in $*;do
    		echo $d
    	done
    }
    func4 1 2 '3 4' '"5 6" 7'
    
    1 2 '3 4' '"5 6" 7' $* $@
    没有双引号
    $*和$@一样,都是按空格分隔打印参数
    1
    2
    3
    4
    "5
    6"
    7
    1
    2
    3
    4
    "5
    6"
    7
    双引号
    "$*"一行打印全部参数
    "$@"挨个输出参数
    1 2 3 4 "5 6" 7 1
    2
    3 4
    "5 6" 7
    # 3. 注意 shell脚本中传递的参数如果包含空格,应该对该参数使用单引号或者双引号。
    脚本参数:Tom Cat参数:"Tom Cat"
    #!/bin/sh
    echo "传入参数:$*"
    echo "第一个参数:$1"
    echo "参数个数:$#"

    传入参数:Tom Cat
    第一个参数:Tom
    参数个数:2

    传入参数:Tom Cat
    第一个参数:Tom Cat
    参数个数:1
  • 相关阅读:
    namenode无法自动切换的问题
    HDFS 安全模式的理解
    程序启动-Runloop
    浅谈MVC和MVVM模式
    Runtime 运行时之一:消息转发
    Runtime 运行时之一:消息传递
    Runtime 运行时之一:类与对象
    GCC 编译详解
    UIView中的坐标转换
    Xcode 利用VVDocumenter 生成注释 通过设置 再生成注释文档
  • 原文地址:https://www.cnblogs.com/csj2018/p/9552774.html
Copyright © 2011-2022 走看看