(十三)、向shell脚本中传参
一、向脚本中传递位置参数
向脚本中传递参数的数目理论上可以无数多,但是只有前9个能被访问,使用shift可以改变此限制
| $0 | $1 | $2 | $3 | $4 | $5 | $6 | $7 | $8 | $9 |
| 脚本名字 | first | second | third | fourth | fifth | sixth | seventh | eighth | ninth |
1 $ vim param
2
3 #!/bin/sh
4 echo "This is the script name : $0"
5 echo "This is the first param : $1"
6 echo "This is the second param : $2"
7 echo "This is the third param : $3"
8 echo "This is the fourth param : $4"
9 echo "This is the fifth param : $5"
10 echo "This is the sixth param : $6"
11 echo "This is the seventh param : $7"
12 echo "This is the eighth param : $8"
13 echo "This is the ninth param : $9"
$ chmod u+x param
$ ./param Did You See The Full Moon
This is the script name : Did
This is the first param : You
This is the second param : See
This is the third param : The
This is the fourth param : Full
This is the fifth param : Moon
This is the sixth param :
This is the seventh param :
This is the eighth param :
This is the ninth param :
二、向系统命令中传递参数
1 $ vim findfile
2 #!/bin/sh
3 # findfile
4 find / -name $1 -print #find $1 in /
5
6 $ chmod u+x findfile
7 $ findfile passwd
8 /etc/passwd
9 /etc/uucp/passwd
10 /usr/bin/passwd
三、特定变量参数
| $# | 传递到脚本的参数个数 |
| $* | 以一个单字符串显示所有向脚本传递的参数 |
| $$ | 脚本运行的当前进程ID号 |
| $! | 后台运行的最后一个进程的ID号 |
| $@ | 与$#相同,但是 使用时加双引号 |
| $- | 显示shell使用的当前选项 |
| $? | 显示最后命令的退出状态 |
$ vim param #!/bin/sh
echo "This is the script name : $0"
echo "This is the first param : $1"
echo "This is the second param : $2"
echo "This is the third param : $3"
echo "This is the fourth param : $4"
echo "This is the fifth param : $5"
echo "This is the sixth param : $6"
echo "This is the seventh param : $7"
echo "This is the eighth param : $8"
echo "This is the ninth param : $9"
echo "The number of arguments passed : $#"
echo "show all arguments : $*"
echo "did my script go with any errors : $?"
$ chmod u+x param
$ ./param Did You See The Full Moon
This is the script name : Did
This is the first param : You
This is the second param : See
This is the third param : The
This is the fourth param : Full
This is the fifth param : Moon
This is the sixth param :
This is the seventh param :
This is the eighth param :
This is the ninth param
The number of arguments passed : 6
show all arguments : Did You See The Full Moon
did my script go with any errors : 0
(十三)、向shell脚本中传参的更多相关文章
- shell脚本调用传参【转载】
转自:https://www.cnblogs.com/cisum/p/8010658.html 1.直接使用$0,$1,$2,$3 $0是脚本的名字,就是按顺序来 #!/bin/bash # auth ...
- 【原】Gradle调用shell脚本和python脚本并传参
最近由于项目自动化构建的需要,研究了下gradle调用脚本并传参的用法,在此作个总结. Pre build.gradle中定义了$jenkinsJobName $jenkinsBuild两个Jenki ...
- shell 脚本中的入参获取与判断
1.获取shell脚本的入参个数: $# 2.获取shell脚本的第n个入参的字符个数/字符串长度(注意这里的n需要替换为具体的数字,如果这个数字超过实际的入参个数,结果为0): ${#n}
- shell脚本中的各种表达式介绍和使用
#前言:在shell脚本中,有各种的表达式,包括有条件测试表达式,文件表达式,字符串表达式,整数表达式,接下来我们来了解一下他们的使用方法 1.条件测试表达式 #首先来看一下条件测试语法 #条件测试语 ...
- ftp在shell脚本中的使用方法
1. ftp自动登录批量下载文件. #####从ftp服务器上的/home/data 到 本地的/home/databackup#####!/bin/bashftp -n<<!open 1 ...
- shell脚本中执行另一个shell脚本
分类: 可以在一个shell脚本中执行另一个shell脚本(或非可执行文件,主要用于取得一些变量的值),方法是: . 文件名(包括路径) 或 变量=文件名(包括路径) . $变量 注意,圆点后面有 ...
- shell脚本中出现^M
在Windows中编辑的shell脚本,传到linux系统中,在末尾发现出现了很多^M字符 1.问题分析 在windows下使用notepad++写的脚本上传到Linux下,在使用vim编辑的时候我们 ...
- [shell]上一个命令执行完成,才执行下一个操作 | shell脚本中判断上一个命令是否执行成功
shell脚本中判断上一个命令是否执行成功 shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败.结合if-else语句实现判断上一个命令是否执行成功. 场 ...
- shell脚本中的日期处理
Ps:这篇文章只是为了做个分类,以后有看到比较好的时间处理命令都会列在这里,您如果有什么好的时间处理命令,可以评论中添加,我会定期查看更新,谢谢! 1.定义一个参数DATE_TODAY,用于记录当天时 ...
随机推荐
- CSP.2020
自闭jpg. 就说说 PJ 吧. TG炸的原因主要是因为PJ的炸裂以及T1--所以就直接分析根本原因了. # 参考补题链接 # # 推荐博客链接 # 0x00 考前一天晚上. 在LH巨佬家吃了饭,前往 ...
- IntelliJ IDEA 配置《算法》(第四版)
红皮的算法一书,内部代码的实现调用了作者写的一个包.为了运行书内代码,需要配置相应的环境. 准备 网站:https://algs4.cs.princeton.edu/code/ 工具:IntelliJ ...
- C++语言中std::array的神奇用法总结,你需要知道!
摘要:在这篇文章里,将从各个角度介绍下std::array的用法,希望能带来一些启发. td::array是在C++11标准中增加的STL容器,它的设计目的是提供与原生数组类似的功能与性能.也正因此, ...
- 6.2 Binding基础
WPF最为核心的思想是数据驱动UI,实现这一技术的基石就是绑定技术(binding).如果把Binding比作数据的桥梁,那么它的两端分别是源(Source)和目标(Target),Binging是架 ...
- 本人的CSDN博客
本人的CSDN博客链接: 传送门
- spring框架使用c3po链接数据库
编辑工具:idea 1.配置pom.xml文件(创建模板时软件自动创建) 导入spring的核心架包 全部架包官网:https://mvnrepository.com/ 1 <dependenc ...
- 腾讯短信平台ASP接口范例
疫情后一个小项目要用到腾讯短信平台,因为比较老,用ASP写的,平台没有相应的ASP接口,百度不到,无奈之下自己写了一个,也方便需要的朋友们. 主要代码如下: <!--#include file= ...
- 老猿学5G专栏完结说明
老猿学5G是因为工作原因促成的,主要目的是为了研究5G的计费架构相关内容,到今天为止,基本上达成目标,因此这个专栏基本上告一段落了. 回想这2个多月的日子,从一个对5G相关知识完全不熟悉的小白,到现在 ...
- web安全漏洞
1.什么是Web漏洞 WEB漏洞通常是指网站程序上的漏洞,可能是由于代码编写者在编写代码时考虑不周全等原因而造成的漏洞.如果网站存在WEB漏洞并被黑客攻击者利用,攻击者可以轻易控制整个网站,并可进一步 ...
- Nday漏洞组合拳修改全校师生密码
很久以前写的文章了,发一下:) 本文是我真实的挖洞经历.撰写本文时相关学校已修复漏洞,相关漏洞也提交给了教育漏洞平台.纯粹是挖洞经验的总结和技术分享,由于敏感信息比较多,所以文章里面很多图片已经面目全 ...