Linux Shell 05 位置变量(命令行参数)
在Linux shell 脚本中可能会用到一些命令行参数,常见如下:
$0:脚本名称
$#:执行脚本时传入的参数个数,不包括脚本名称
$@:所有参数
$*:所有参数
$1...$9:第1个参数......第9个参数
$?:不属于位置变量,只是形式上比较相似;表示命令执行的退出状态(正常退出为0)
1.示例
#!/bin/bash echo "file name:"$
echo "There are $# parameters" echo '"$*":'
for var in "$*"
do
echo $var
done echo '$*:'
for var in $*
do
echo $var
done echo '"$@":'
for var in "$@"
do
echo $var
done echo '$@:'
for var in $@
do
echo $var
done
2. 输出结果:
file name:./position.sh # $0
There are parameters # $# "$*":
adams byron clark # 遍历"$*":只有一条记录
$* : # 遍历$* : 三条记录
adams
byron
clark "$@" :
adams # 遍历"$@" : 三条记录
byron
clark
$@ : # 遍历$@ : 三条记录
adams
byron
clark
3. $@和$*的区别
a.不加双引号时$@ $*:二者均为以空格分隔,由参数组成的一个字符串。 上例中为"Adams" "byron" "clark"
b. 加双引号时:
"$@" 指 "Adams" "byron" "clark"
"$*" 指"Adams byron clark" (以默认的IFS连接为一个字符串)
c. 不论是否加双引号:$@的展开值是不变的
d. 加单引号,则'$@', '$*'不会被解析成位置变量
Linux Shell 05 位置变量(命令行参数)的更多相关文章
- linux bash Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
在linux下配置shell参数说明 前面已经讲到,变量名只能包含数字.字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量. 例如,$ 表示当前Shell进程的ID,即pid ...
- Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数.例如,第一个参数是$1,第二个参数是$2. $# 传递给脚本或函数的参数个数. $* 传 ...
- 【Shell脚本学习8】Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
前面已经讲到,变量名只能包含数字.字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量. 例如,$ 表示当前Shell进程的ID,即pid,看下面的代码: $echo $$ 运 ...
- 【转】shell 教程——07 Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
前面已经讲到,变量名只能包含数字.字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量. 例如,$ 表示当前Shell进程的ID,即pid,看下面的代码: $echo $$ 运 ...
- Linux 编程学习笔记----命令行参数处理
转载请注明出处.http://blog.csdn.net/suool/article/details/38089001 问题引入----命令行參数及解析 在使用linux时,与windows最大的不同 ...
- Linux getopt/getopts解析命令行参数教程
一.说明 shell中获取参数可以直接使用$1.$2等形式来获取,但这种方式有明显的限制:每个参数的位置是固定的.比如如果在设计上$1是ip地址$2是端口,那在执行时就必须第一个参数是ip第二个参数是 ...
- 【Linux Shell】uname命令行
常用命令uname -v # uname -i #uname -a dream361@master:~$ uname -n #主机名称 master dream361@master:~$ uname ...
- 测试相关shell命令总结2——结构控制语句,命令行参数
1,shell 中单引号和双引号的区别,单引号不进行解释.双引号进行解释 1,在shell中进行数学运算,放在$和[]中 $[1+2] 有些很奇怪,在.sh文件中放在(())中貌似也能够进行数学运算. ...
- R语言 使用命令行参数运行R程序
args_test.R 代码如下: Args <- commandArgs()cat("Args[1]=",Args[1],"\n")cat(" ...
随机推荐
- 数论 - 高精度Fibonacci数 --- UVa 10183 : How Many Fibs ?
How many Fibs? Description Recall the definition of the Fibonacci numbers: f1 := 1 f2 := 2 fn := f n ...
- JS对象的创建与使用
本文内容: 1.介绍对象的两种类型: 2.创建对象并添加成员: 3.访问对象属性: 4.利用for循环枚举对象的属性类型: 5.利用关键字delete删除对象成 ...
- C#实用杂记-EF全性能优化技巧2
原文链接: http://www.cnblogs.com/zhaopei/p/5721789.html
- chrome修改UserAgent,调试
chrome浏览器模拟 UserAgent,调试手机环境. https://chrome.google.com/webstore/detail/user-agent-switcher-for-c/dj ...
- LeetCode129:Sum Root to Leaf Numbers
题目: Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a nu ...
- MySQL Query Profile
MySQL Query Profiler, 可以查询到此 SQL 语句会执行多少, 并看出 CPU/Memory 使用量, 执行过程 System lock, Table lock 花多少时间等等.从 ...
- SignalR-入门
1.什么是SignalR: ASP.NET SignalR是为简化开发开发人员将实时web内容添加到应用程序过程而提供的类库.实时web功能指的是让服务器代码可以随时主动推送内容给客户端,而不是让服务 ...
- U-boot的环境变量值得注意的有两个: bootcmd 和bootargs
本文转载至:http://www.cnblogs.com/cornflower/archive/2010/03/27/1698279.html U-boot的环境变量值得注意的有两个: bootcmd ...
- maven工程导入时解决Cannot change version of project facet Dynamic Web Module to 2.3
解决方法:修改web.xml,在头部加入内容,加入后为: <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&q ...
- 为阿里云存储开发的PHP PEAR 包:Services_Aliyun_OSS
阿里云开放存储服务 OSS:用于存储图片.apk等静态资源,使用阿里云带宽,不占用开发者服务器带宽. 阿里云官方PHP SDK: http://aliyun.com/product/oss/#help ...