zoukankan      html  css  js  c++  java
  • shell中的特殊变量和函数传参

    shell中的特殊变量

      $? :上一个命令的执行状态返回值

      $#::参数的个数

      $*:参数列表,所有的变量作为一个字符串

      $@:参数列表,每个变量作为单个字符串

      $1-9,${10}:位置参数

      $$:脚本的进程号

      $_:之前命令的最后一个参数

      $0:脚本的名称

      $!:运行在后台的最后一个进程ID

    那么问题来了,这些特殊的变量怎么传递到shell中定义函数中去呢?

       一个脚本说明问题

    [root@lamp tmp]# cat test.sh 
    #!/bin/sh
    
    func ()
    {
            echo "$1"
            echo "$2"
            echo "$#"
            echo "$*"
            echo "$@"
            echo "$?"
            echo "$0"
            echo "$$"
    }
    
    func $1
    
    echo ===== I am split line ========
    
            echo "$1"
            echo "$2"
            echo "$#"
            echo "$*"
            echo "$@"
            echo "$?"
            echo "$0"
            echo "$$"
    [root@lamp tmp]# sh test.sh argument1 argument2
    argument1
    
    1
    argument1
    argument1
    0
    test.sh
    3231
    ===== I am split line ========
    argument1
    argument2
    2
    argument1 argument2
    argument1 argument2
    0
    test.sh
    3231
    [root@lamp tmp]# 
  • 相关阅读:
    supervised learning 监督式学习
    4.4 day14 内置函数
    4.3 day13 迭代器 生成器
    4.2 homework
    4.2 day12 装饰器-带参数
    3.29 homework
    SQL Server 索引和视图
    SQL Server 事务、异常和游标
    SQL Server 触发器
    SQL Server 存储过程
  • 原文地址:https://www.cnblogs.com/along1226/p/5003930.html
Copyright © 2011-2022 走看看