一、向脚本中传递位置参数

向脚本中传递参数的数目理论上可以无数多,但是只有前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脚本中传参的更多相关文章

  1. shell脚本调用传参【转载】

    转自:https://www.cnblogs.com/cisum/p/8010658.html 1.直接使用$0,$1,$2,$3 $0是脚本的名字,就是按顺序来 #!/bin/bash # auth ...

  2. 【原】Gradle调用shell脚本和python脚本并传参

    最近由于项目自动化构建的需要,研究了下gradle调用脚本并传参的用法,在此作个总结. Pre build.gradle中定义了$jenkinsJobName $jenkinsBuild两个Jenki ...

  3. shell 脚本中的入参获取与判断

    1.获取shell脚本的入参个数: $# 2.获取shell脚本的第n个入参的字符个数/字符串长度(注意这里的n需要替换为具体的数字,如果这个数字超过实际的入参个数,结果为0): ${#n}

  4. shell脚本中的各种表达式介绍和使用

    #前言:在shell脚本中,有各种的表达式,包括有条件测试表达式,文件表达式,字符串表达式,整数表达式,接下来我们来了解一下他们的使用方法 1.条件测试表达式 #首先来看一下条件测试语法 #条件测试语 ...

  5. ftp在shell脚本中的使用方法

    1. ftp自动登录批量下载文件. #####从ftp服务器上的/home/data 到 本地的/home/databackup#####!/bin/bashftp -n<<!open 1 ...

  6. shell脚本中执行另一个shell脚本

    分类: 可以在一个shell脚本中执行另一个shell脚本(或非可执行文件,主要用于取得一些变量的值),方法是: . 文件名(包括路径) 或 变量=文件名(包括路径) . $变量   注意,圆点后面有 ...

  7. shell脚本中出现^M

    在Windows中编辑的shell脚本,传到linux系统中,在末尾发现出现了很多^M字符 1.问题分析 在windows下使用notepad++写的脚本上传到Linux下,在使用vim编辑的时候我们 ...

  8. [shell]上一个命令执行完成,才执行下一个操作 | shell脚本中判断上一个命令是否执行成功

    shell脚本中判断上一个命令是否执行成功  shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败.结合if-else语句实现判断上一个命令是否执行成功. 场 ...

  9. shell脚本中的日期处理

    Ps:这篇文章只是为了做个分类,以后有看到比较好的时间处理命令都会列在这里,您如果有什么好的时间处理命令,可以评论中添加,我会定期查看更新,谢谢! 1.定义一个参数DATE_TODAY,用于记录当天时 ...

随机推荐

  1. 如何修改Docker的默认网段?

    背景 公司的服务器全部都是购买的阿里云ECS主机,默认内网网段为172.16.0.0/12,测试服上的服务基本都是使用Docker部署的. 之前的同事在该机器上安装的Docker全部都是默认配置,网段 ...

  2. 学习关注:学习C++的前景

    许多朋友都有这样的疑问,学习C/++能做什么?有什么好处?薪资怎么样,下面就为大家来解答! 像前面的文章有提到过,计算机专业位列热门专业第一门,可想前景如何.C语言C++属于高级语言,适合人类编写,现 ...

  3. day3(axios封装)

    1. 始vue化项目 https://www.cnblogs.com/xiaonq/p/11027880.html vue init webpack deaxios     # 使用脚手架创建项目 d ...

  4. nginx反向代理docker容器化django

    1.新建Dockerfile FROM python:3.8.5 MAINTAINER ChsterChen ENV PYTHONUNBUFFERED 1 COPY pip.conf /root/.p ...

  5. 第十五章、Model/View架构中Item Views部件的父类

    老猿Python博文目录 老猿Python博客地址 引言:本章早就写好了,其简版<第15.18节 PyQt(Python+Qt)入门学习:Model/View架构中视图Item Views父类详 ...

  6. 课堂练习之疫情APP

    title: 课堂练习之疫情查询APP date: 2020-03-17 20:08:51 tags: 在之前的体温记录APP上改进,只写出疫情信息查询页面的代码. 实体类与上篇博客SSM整合中的Ci ...

  7. CVE申请+挖掘指南

    CVE的全称是"Common Vulnerabilities and Exposures"翻译成中文就是"公共漏洞和披露" 可以简单理解跟国内CNVD的通用漏洞 ...

  8. edusrc上海交通大学证书

  9. 再次学习sql注入

    爆所有数据库 select schema_name from information_schema.schemata 先爆出多少个字段 id = 1 order by ?; mysql5.0及以上 都 ...

  10. flask加载配置文件的三种方法

    1.第一种方法也是我们最长用到的,包括我们项目中也是采用第一种的方法,加载配置文件 配置信息全部写在config.py里面,在主app.py的文件中写入 import config app.confi ...