shell 5参数
1. shell传递参数
我们可以在执行shell脚本时,向脚本传递参数。
$n | n代表数字。$0表示执行的脚本名称,$1表示第1个参数,$2是第2个参数. shell默认支持9个参数,使用shift可以传递更多的参数。 |
$#,${#*},${#@} | 传递到脚本的参数个数 |
$$ | 脚本运行的当前进程的ID号 |
$! | 后台运行的最后一个进程的ID号 |
$? | 显示上个命令的执行情况。0表示没有错误,其他任何值表明有错误。 |
$@ | 一个单字符显示所有向脚本传递的参数 |
$* | 以一个单字符显示所有向脚本传递的参数 |
$- | 显示shell使用的当前选项,与set命令功能相同 |
${*:1:3},${*:$#} | 表示多个参数 |
```
#shell
#!/bin/sh
echo "shell脚本名称:" $0 #shell脚本名称: 829test.sh
echo "第一个参数:" $1 #第一个参数: 3
echo "第二个参数:" $2 #第二个参数: 4
echo "脚本的个数:" $# #脚本的个数: 2
echo "当前进程ID:" $$ #当前进程ID: 6673
echo "后台运行的最后一个进程ID:" $! #后台运行的最后一个进程ID:
echo "上个命令的执行结果:" $? #上个命令的执行结果: 0
echo "参数作为字符串显示*:" $* "$*" #参数作为字符串显示*: 3 4 3 4
echo "参数作为字符串显示@:" $@ "$@" #参数作为字符串显示@: 3 4 3 4
```
2. \(@与\)*区别
#!/bin/sh
#$@ vs $*
func1(){
echo \"\$@\"
for d in "$@";do
echo $d
done
}
func1 1 2 '3 4' '"5 6" 7'
func2(){
echo \$@
for d in $@;do
echo $d
done
}
func2 1 2 '3 4' '"5 6" 7'
func3(){
echo \"\$*\"
for d in "$*";do
echo $d
done
}
func3 1 2 '3 4' '"5 6" 7'
func4(){
echo \$*
for d in $*;do
echo $d
done
}
func4 1 2 '3 4' '"5 6" 7'
1 2 '3 4' '"5 6" 7' | $* | $@ |
没有双引号 $*和$@一样,都是按空格分隔打印参数 |
1 2 3 4 "5 6" 7 |
1 2 3 4 "5 6" 7 |
双引号 "$*"一行打印全部参数 "$@"挨个输出参数 |
1 2 3 4 "5 6" 7 | 1 2 3 4 "5 6" 7 |
# 3. 注意
shell脚本中传递的参数如果包含空格,应该对该参数使用单引号或者双引号。
脚本 | 参数:Tom Cat | 参数:"Tom Cat" |
#!/bin/sh echo "传入参数:$*" echo "第一个参数:$1" echo "参数个数:$#" |
传入参数:Tom Cat 第一个参数:Tom 参数个数:2 |
传入参数:Tom Cat 第一个参数:Tom Cat 参数个数:1 |
shell 5参数的更多相关文章
- Shell 传递参数
Shell 传递参数 向脚本传递参数,格式为:$n. 向脚本传递三个参数,并分别输出: echo "Shell 传递参数实例!"; echo "第一个参数为:$1&quo ...
- 2. Shell 传递参数
1. 概要 我们可以在执行 Shell脚本时,向脚本传递参数,脚本内获取参数的格式为:$n.n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推-- #!/bin/bas ...
- [ 转]Shell中参数($0,$1,$#,$NF,$@等)的含义
Shell中参数($0,$1,$#,$NF,$@等)的含义 发布时间:2018-01-19 来源:网络 上传者:用户 摘要:此处仅仅从来记录平时常用的命令的参数.以免下次忘记时及时找到.也方便更多的人 ...
- shell脚本参数中有空格
shell脚本参数中有空格 在shell脚本中如果有空格的处理如下: sh test.sh "hello word" echo $1 得到的是hello,而不是hello word ...
- Shell传递参数【转载】
Shell 传递参数 我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n.n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 实例 以 ...
- Shell 传递参数(转)
我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n.n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 实例 以下实例我们向脚本传递三 ...
- Linux学习笔记 -- 为 Shell 传递参数
我们可以在执行 Shell 脚本时,可以向脚本传递参数.脚本内获取参数的格式为:$n.(n 代表一个数字,0为所执行的shell脚本名称,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类 ...
- 三、Shell 传递参数
Shell 传递参数 我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n.n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 实例 以 ...
- shell传递参数(三)
$n:n代表一个数字,指执行脚本的第n个参数.特别地,$0指执行的文件名 [root@ipha-dev71- exercise_shell]# cat test.sh #!/bin/bash echo ...
随机推荐
- Double H6.0
Double H 博客链接 成员 学号 姓名 211606379 王熙航(队长) 211606364 李冠锐 211606350 曾磊鑫 211606457 郑沐榕 211606342 杨艺勇 211 ...
- oracle不小心更新了数据库中的所有内容后的恢复
开发过程中,在更新数据库中的某一条数据时,由于疏忽忘记加where判断条件了,这时更新会提示是否要更新全部数据,但是由于自己没有仔细看提示导致直接点确定并commit了,导致数据库中所有数据的相关字段 ...
- Linux内核参数优化记录
//fs.file-max 最大打开文件数 //fs.nr_open=20480000 单个进程允许打开的文件句柄上限 //信号量及共享内存,可以使用ipcs -l来获取 //kernel.sem 信 ...
- 详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程
Himi 原创, 欢迎转载,转载请在明显处注明! 谢谢. 原文地址:http://blog.csdn.net/xiaominghimi/article/details/6937097 //——201 ...
- I.MX6_Linux_UART_device&driver_hacking
/****************************************************************************************** * I.MX6_ ...
- Unity 3D开发-C#脚本语言的一些基础用法
Unity 中C#语言的一些基础用法 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 Lerp -- 线 ...
- Linux系统如何制作U盘启动盘更换系统
进入这个网站balenaEtcher,直接下载可接
- BZOJ1095: [ZJOI2007]Hide 捉迷藏【线段树维护括号序列】【思维好题】
Description 捉迷藏 Jiajia和Wind是一对恩爱的夫妻,并且他们有很多孩子.某天,Jiajia.Wind和孩子们决定在家里玩 捉迷藏游戏.他们的家很大且构造很奇特,由N个屋子和N-1条 ...
- (2)流程控制(for循环、if...else判断、while循环)
for循环 for item in names: #结构语法 print(item) for循环嵌套for循环 for循环配合range()可以直接指定要打印的数量 例:打印一个金字塔 for i ...
- Python编码——常见的编码设置
1.查看自己电脑的python的编码设置 # -*- coding: utf8 -*- import sys, locale """ locale.getpreferre ...