Shell中参数($0,$1,$#,$NF,$@等)的含义

  • 发布时间:2018-01-19 来源:网络 上传者:用户

  • 摘要:此处仅仅从来记录平时常用的命令的参数。以免下次忘记时及时找到。也方便更多的人。awk$0表示所有$1表示第一个$NF表示最后一个$(NF-1)表示倒数第二个比如:echo'abcd'|awk'{print$0}'的结果是'abcd'echo'abcd'|awk'{print$1}'的结果是'a'echo'abcd'|awk'{print$NF}'的结果是'd'echo'abcd'|awk'{print$(NF-1)}'的结果是'c'function$0当前脚本的文件名或者函数

  • 此处仅仅从来记录平时常用的命令的参数。以免下次忘记时及时找到。也方便更多的人。

    awk

    $0表示所有 $1表示第一个 $NF表示最后一个 $(NF-1)表示倒数第二个

    比如:

    echo 'a b c d' | awk '{print $0}' 的结果是'a b c d'  echo 'a b c d' | awk '{print $1}' 的结果是'a'  echo 'a b c d' | awk '{print $NF}' 的结果是'd'  echo 'a b c d' | awk '{print $(NF-1)}' 的结果是'c'  function

    $0 当前脚本的文件名或者函数名 $n 传递给脚本或函数的参数。n 表示position。例如,第一个参数是$1,第二个参数是$2。 $# 传递给脚本或函数的参数个数。比如fuc a b c d, 共4个参数返回的值是就是4 $* 传递给脚本或函数的所有参数。 aliyunzixun@xxx.com 传递给脚本或函数的所有参数。与$*的区别在于加上”“后,前者是将所有参数合成一个,后者不变 $? 上个命令的退出状态,或函数的返回值。 $$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。

    #!/bin/bash  function bfunc()  {  echo "$1"  }  function afunc()  {  echo "/$0 = ${0}"  echo "/$1 = ${1}"  echo "/$# = ${#}"  echo "/$* = ${*}"  echo "/  aliyunzixun@xxx.com = ${@}"  echo "/$$ = ${$}"  echo "/"/  aliyunzixun@xxx.com/" = $(bfunc "${@}")"  echo "/"/$*/" = $(bfunc "${*}")"  }  afunc "a" "b" "c" "d"

    上述代码的执行结果是:

    $0 = ./test.sh  $1 = a  $# = 4  $* = a b c d  aliyunzixun@xxx.com = a b c d  $$ = 44076  "  aliyunzixun@xxx.com" = a  "$*" = a b c d

    可以清晰地看到aliyunzixun@xxx.com 和$* 的区别了吧.

    需要指出的是此处$0 的值是”./test.sh”为文件的名称。当我们把执行从./test.sh 改成source test.sh (或者直接执行afunc a b c d )的时候值就变成了”afunc”,也就是函数名了。

最新文章

  1. 重新编译jdk源码,启用debug信息
  2. Spring的测试
  3. LEfSe分析
  4. Longest Substring Without Repeating Characters (c#)
  5. 2.python算法之回形矩阵
  6. Java -- 子类使用super调用父类的方法A,A 调用了方法B,子类也override方法B,那么super.A()最终调用到了子类的B方法
  7. 链表 UVA 11988 Broken Keyboard (a.k.a. Beiju Text)
  8. metasploit--exploit模块信息
  9. 应用层(一)HTTP服务访问基本流程和HTTP报文详解
  10. Oracle ->> 查看分区表的每个分区的数据行分布情况
  11. MVC 增加手机站
  12. jsp bean标签
  13. VS2013与MySql建立连接;您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库 EF6使用Mysql的技巧
  14. 内存管理(memory allocation内存分配)
  15. global,$GLOBALS[' '] 全局, 浮动float跟margin的注意事项
  16. [Java Web 第一个项目]客户关系处理系统(CRM)项目总结
  17. [].slice.call(arguments,1)
  18. Linux:Fedora系统的安装
  19. MYSQL获取当前年、季、月、周第一天、最后一天的日期/时间戳
  20. (转载)深入了解MyBatis参数

热门文章

  1. Shell定时删除日志
  2. 如何处理高并发情况下的DB插入
  3. python第十四课--排序及自定义函数之自定义函数(案例五)
  4. Javascript (ECMAScript5) 的细节和违反直觉的地方
  5. [USACO09JAN]Earthquake Damage
  6. kendo ui - DatePicker 日期时间系列
  7. 网页里面出现"$#2342"类似这样 应该怎么转义过来?
  8. 初识Qt基于http协议网页浏览
  9. 关于iframe的父页面调取子页面里的事件(父往子里传)
  10. jenkins slave 挂载