(十三)、向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,用于记录当天时 ...
随机推荐
- Snap Build Your Own Blocks输入中文解决办法
Snap Build Your Own Blocks输入中文解决办法 Snap! (formerly BYOB) is a visual, drag-and-drop programming lang ...
- python 网络并发 :理论部分
1.今日内容大纲 进程的介绍(理论部分) 进程的创建以及分析 获取进程的pid 进程之间的隔离 1.进程的介绍(理论部分) 1.1什么是进程 一个正在被cpu执行的程序就是一个进程,一个程序可以开启多 ...
- model基础操作
url.py from django.contrib import admin from django.urls import path,include from app1.views import ...
- 《MySQL慢查询优化》之SQL语句及索引优化
1.慢查询优化方式 服务器硬件升级优化 Mysql服务器软件优化 数据库表结构优化 SQL语句及索引优化 本文重点关注于SQL语句及索引优化,关于其他优化方式以及索引原理等,请关注本人<MySQ ...
- moviepy音视频开发:音频剪辑基类AudioClip
☞ ░ 前往老猿Python博文目录 ░ 一.背景知识介绍 1.1.声音三要素: 音调:人耳对声音高低的感觉称为音调(也叫音频).音调主要与声波的频率有关.声波的频率高,则音调也高. 音量:也就是响度 ...
- CobaltStrike 生成office宏病毒进行钓鱼攻击
关于WORD宏: 在百度百科上有: 宏是一个批量处理程序命令,正确地运用它可以提高工作效率.微软的office软件允许用户自己编写,叫VBA的脚本来增加其灵活性,进一步扩充它的能力.如完打开word文 ...
- 【软件测试部署基础】maven的认识
最近部门分享测试环境部署相关内容,在同事的分享下,学到了很多新的知识点,也是我们在测试环境部署的时候非常重要的一些基本的知识点,当你系统的去了解了一下,你会发现后端在maven相关的点上有个清晰的了解 ...
- IntelliJ IDEA 学习笔记
之前一直用Eclipse,最近尝试使用IDEA,相较于 Eclipse 而言,IDEA强大的整合能力,比如: Git. Maven. Spring 等:提示功能的快速. 便捷:提示功能的范围广:好用的 ...
- 快速排序(c++,递归)quick_sort
放上c++代码,模板 1 #include <iostream> 2 #include<bits/stdc++.h> 3 using namespace std; 4 5 in ...
- CSP-S 2019 Solution
Day1-T1 格雷码(code) 格雷码是一种特殊的 \(n\) 位二进制串排列法,要求相邻的两个二进制串恰好有一位不同,环状相邻. 生成方法: \(1\) 位格雷码由两个 \(1\) 位的二进制串 ...