linux 脚本含参,linux shell脚本文件的入参
几个特殊变量:
$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脚本文件的入参相关推荐
- linux cc脚本,Linux运维知识之Linux简单处理CC攻击shell脚本
本文主要向大家介绍了Linux运维知识之Linux简单处理CC攻击shell脚本,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 第一个脚本是通过查找日志中访问次数过多的ip,并 ...
- 服务器状态监控php源码,服务器状态监控_监控Linux服务器网站状态的SHELL脚本
摘要 腾兴网为您分享:监控Linux服务器网站状态的SHELL脚本,蜗牛集市,同花顺,探客宝,手柄助手等软件知识,以及日期倒计时插件,云南省教育资源公共,rui手机桌面,小屁孩桌面便签,合金装备崛起复 ...
- 如何在 Linux 中创建并运行 Shell 脚本(Bash 初学者教程)
文章目录 1.创建并运行第一个 shell 脚本 2.将 shell 脚本转换为 bash 脚本 3.为什么大多数 shell 脚本都包含 #! /bin/bash 在 shell 脚本的开头? 4. ...
- Linux服务器监控cpu数据shell脚本
Linux服务器监控cpu数据shell脚本 背景: 一种简易的监控进程的CPU.内存.线程数.句柄数的办法,使用shell脚本实现监控,Excel实现数据分析. #!/bin/bash#过滤出需要的 ...
- Linux 之旅 10:Shell 脚本
Linux 之旅 10:Shell 脚本 (图片来自shell/bash脚本编程) Linux 上的 Shell 脚本可以看做是类似于Windows上的批处理程序(.bat)一样的东西,其本质就是将一 ...
- 嵌入式 Linux 入门(五、Shell 脚本编程上:认识 Shell 脚本)
大家好,是矜辰所致,嵌入式 Linux入 门第五课,本课开始简单学习一下 Shell 脚本编程. 目录 前言 一.Shell 脚本基础说明 1.1 什么是 Shell 脚本 1.2 Shell 脚本的 ...
- 标杆徐linux云计算视频,标杆徐2018 Linux自动化运维系列④: Shell脚本自动化编程实战...
2019年录制SHell新课地址 贴切企业脚本编写思路讲解,带你玩Shell脚本编程实战. 本套课程从实际项目案例出发,近100个Shell实例讲解,由浅入深,循序渐进,带你玩转Shell编程的方方面 ...
- LINUX下的流量监控shell脚本
这篇文章主要介绍了LINUX下的流量监控shell脚本,可以适用任何Linux版本,需要的朋友可以参考下 一.脚本源码 # vi /etc/rc.d/traffic_monitor.sh ------ ...
- Linux系统一键安全加固shell脚本编写思路
本次分享一下个人在对Linux系统一键安全加固shell脚本编写时的一些思路: Linux系统一键安全加固shell脚本编写思路 1.编写须知 1.1 脚本使用说明 1.2 主要功能说明: 1.3隐藏 ...
最新文章
- ddr42400和2660混插_DDR4 2400和3000区别大吗 低频和高频内存性能差距对比
- java中 菜单的触发事件_javaweb ajax+div实现左边菜单右边内容时点击菜单应该触发事件但是右边没反应...
- 宝塔清mysql主从日志_宝塔面板Mysql主从日志文件mysql-bin文件清除方法
- ReactNative开发环境
- 微机原理与接口技术(第2版)考点
- android开发 文件分享到应用,Android开发之——7.0适配之应用之间共享文件(FileProvider)...
- Opencv--图像颠倒的问题
- python---之阿partial
- 苹果屏幕镜像_苹果屏幕镜像一直在转,秒懂投屏帮你解决
- Java 第十一次作业
- python下载和pycharm下载
- 在Ubuntu上玩《口袋妖怪·叶绿》
- 【C#上位机】西门子1200PLC实用定位控制程序案例
- 台式计算机显示器品牌排行,现在电脑显示器什么品牌好?
- 幻方问题__技巧解法
- 大白话Vue源码系列(01):万事开头难
- 希捷原装移动硬盘拆壳
- java里%是什么_java里.是什么意思?
- QML 使用资源系统
- 机械制造业ERP结构与模块介绍,实施价值分析