几个特殊变量:

$0 : 指本脚本文件的文件名

$1及以后: 脚本文件的入参

$# : 入参个数

$* : 所有入参,将所有变量当作单个单词保存,基本上,将所有参数当作一个参数,而不是多个对象。如./tmp.sh a b c d,如果用$*遍历的话,则认为$1是 a b c d

$@ : 所有入参,将命令行上提供的所有参数当作同一个字符串中的多个独立的单词,允许遍历所有的值。如./tmp.sh a b c d,如果用$@遍历的话,则认为$1是 a, $2是b

shift命令:每执行一次shift命令,就会将目前第一个参数移除,即让$1指向下一个入参,一般在遍历所有入参时用。

遍历所有参数的简单示例:

1、利用shift命令:

while [ -n "$1" ]

do

echo "the ${cnt}th para is $1"

shift

done

2、利用for … in …的形式(Python之类的语言中叫做“迭代器”,bash中是否有这样的叫法,还没看到):

for param in "$*"

do

echo "the ${cnt}th param is $param"

cnt=$[ $cnt + 1 ]

done

getopt命令:

可以在脚本文件中使用set-- `getopt XXX`格式化执行脚本的入参和选项,如:

set -- `getopt -q ab:c "$@"`

解释如下:

-q(quiet):遇到不支持的错误选项及参数,不报错;

ab:c: 支持的option为-a -b -c,且-b后面跟一个参数;   ---注:用getopt格式化之后,脚本自动就认识输入的连续的option了,如-ac,会自动解释成-a和-c

”$@“: 所有入参,可遍历。

---注:`getopt -q ab:c "$@"`中,不是单引号,是反单引号,就是键盘最左上角Esc下面那个。代表将反单引号内部的命令执行的结果返回

getopt有个缺点:如果执行为 ./tmp.sh "para1 para2",那么也会把para1和para2当作2个参数,即不支持参数中含有空格。

遇到这个缺点,可以用getopts来代替,简单举例如下:

#!/bin/bash

while getopts :ab:c opt

do

case "$opt" in

a) echo "found the -a option";;

b) echo "found the -b option with value $OPTARG";;

c) echo "found the -c option";;

*) echo "unknow option: $opt";;

esac

done

上面脚本中,相当于逐个遍历$@中的变量,并输出信息,其中,在-b后面,用$OPTARG输出参数,可以识别带空格的参数。

linux 脚本含参,linux shell脚本文件的入参相关推荐

  1. linux cc脚本,Linux运维知识之Linux简单处理CC攻击shell脚本

    本文主要向大家介绍了Linux运维知识之Linux简单处理CC攻击shell脚本,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 第一个脚本是通过查找日志中访问次数过多的ip,并 ...

  2. 服务器状态监控php源码,服务器状态监控_监控Linux服务器网站状态的SHELL脚本

    摘要 腾兴网为您分享:监控Linux服务器网站状态的SHELL脚本,蜗牛集市,同花顺,探客宝,手柄助手等软件知识,以及日期倒计时插件,云南省教育资源公共,rui手机桌面,小屁孩桌面便签,合金装备崛起复 ...

  3. 如何在 Linux 中创建并运行 Shell 脚本(Bash 初学者教程)

    文章目录 1.创建并运行第一个 shell 脚本 2.将 shell 脚本转换为 bash 脚本 3.为什么大多数 shell 脚本都包含 #! /bin/bash 在 shell 脚本的开头? 4. ...

  4. Linux服务器监控cpu数据shell脚本

    Linux服务器监控cpu数据shell脚本 背景: 一种简易的监控进程的CPU.内存.线程数.句柄数的办法,使用shell脚本实现监控,Excel实现数据分析. #!/bin/bash#过滤出需要的 ...

  5. Linux 之旅 10:Shell 脚本

    Linux 之旅 10:Shell 脚本 (图片来自shell/bash脚本编程) Linux 上的 Shell 脚本可以看做是类似于Windows上的批处理程序(.bat)一样的东西,其本质就是将一 ...

  6. 嵌入式 Linux 入门(五、Shell 脚本编程上:认识 Shell 脚本)

    大家好,是矜辰所致,嵌入式 Linux入 门第五课,本课开始简单学习一下 Shell 脚本编程. 目录 前言 一.Shell 脚本基础说明 1.1 什么是 Shell 脚本 1.2 Shell 脚本的 ...

  7. 标杆徐linux云计算视频,标杆徐2018 Linux自动化运维系列④: Shell脚本自动化编程实战...

    2019年录制SHell新课地址 贴切企业脚本编写思路讲解,带你玩Shell脚本编程实战. 本套课程从实际项目案例出发,近100个Shell实例讲解,由浅入深,循序渐进,带你玩转Shell编程的方方面 ...

  8. LINUX下的流量监控shell脚本

    这篇文章主要介绍了LINUX下的流量监控shell脚本,可以适用任何Linux版本,需要的朋友可以参考下 一.脚本源码 # vi /etc/rc.d/traffic_monitor.sh ------ ...

  9. Linux系统一键安全加固shell脚本编写思路

    本次分享一下个人在对Linux系统一键安全加固shell脚本编写时的一些思路: Linux系统一键安全加固shell脚本编写思路 1.编写须知 1.1 脚本使用说明 1.2 主要功能说明: 1.3隐藏 ...

最新文章

  1. ddr42400和2660混插_DDR4 2400和3000区别大吗 低频和高频内存性能差距对比
  2. java中 菜单的触发事件_javaweb ajax+div实现左边菜单右边内容时点击菜单应该触发事件但是右边没反应...
  3. 宝塔清mysql主从日志_宝塔面板Mysql主从日志文件mysql-bin文件清除方法
  4. ReactNative开发环境
  5. 微机原理与接口技术(第2版)考点
  6. android开发 文件分享到应用,Android开发之——7.0适配之应用之间共享文件(FileProvider)...
  7. Opencv--图像颠倒的问题
  8. python---之阿partial
  9. 苹果屏幕镜像_苹果屏幕镜像一直在转,秒懂投屏帮你解决
  10. Java 第十一次作业
  11. python下载和pycharm下载
  12. 在Ubuntu上玩《口袋妖怪·叶绿》
  13. 【C#上位机】西门子1200PLC实用定位控制程序案例
  14. 台式计算机显示器品牌排行,现在电脑显示器什么品牌好?
  15. 幻方问题__技巧解法
  16. 大白话Vue源码系列(01):万事开头难
  17. 希捷原装移动硬盘拆壳
  18. java里%是什么_java里.是什么意思?
  19. QML 使用资源系统
  20. 机械制造业ERP结构与模块介绍,实施价值分析

热门文章

  1. Linux设置服务器定时重启
  2. Cacti--cacti数据库详解
  3. webrtc jitterbuffer 学习
  4. 《推荐系统实践》读书笔记3
  5. XAMPP连接远程服务器数据库
  6. wordpress中解决页面未找到的问题
  7. StarUML使用说明
  8. Wi-Fi Display
  9. 前端开发实习面试题(CSS篇)
  10. ASP.NET 母版页小实例(点击显示文本内容)