Shell传递参数

######################################摘自菜鸟教程:http://www.runoob.com/linux/linux-shell-passing-arguments.html #####################################

1、shell脚本传递参数

向脚本传递参数,脚本内获取参数的格式为:$nn 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……

#!/bin/bash

echo "Shell脚本传递参数学习!"

echo "执行的文件名:$0"

echo "第一个参数为$1" ##第一个参数为1

echo "第二个参数为$2" ##第二个参数为2

echo "第三个参数为$3" ##第三个参数为3

执行shellscript脚本:./bian_trans1.sh 1 2 3

2、特殊字符来处理参数

参数处理

说明

$#

传递到脚本的参数个数

$*

以一个单字符串显示所有向脚本传递的参数。
如"$*"用「"」括起来的情况、以"$1 $2 …
$n"的形式输出所有参数。

$$

脚本运行的当前进程ID号

$!

后台运行的最后一个进程的ID号

$@

与$*相同,但是使用时加引号,并在引号中返回每个参数。
如"$@"用「"」括起来的情况、以"$1"
"$2" … "$n" 的形式输出所有参数。

$-

显示Shell使用的当前选项,与set命令功能相同。

$?

显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

例子:

#!/bin/bash

echo "Shell脚本传递参数学习!"

echo "执行的文件名:$0"

echo "第一个参数为$1"

echo "第二个参数为$2"

echo "第三个参数为$3"

echo "传递到脚本的参数个数为:$#"  ##传递到脚本的参数个数为:3

echo "传递到脚本的参数为:$*" ##传递到脚本的参数为:1 2
3

echo "脚本运行的当前进程ID号:$$" ##脚本运行的当前进程ID号:14483

echo "后台运行的最后一个进程的ID号:$!" ##后台运行的最后一个进程的ID号:

echo "传递到脚本的参数为:"$@""
##传递到脚本的参数为:1 2 3

echo "当前shell使用的选项为:$-"
##前shell使用的选项为:hB

echo "最后命令的退出状态:$?"
##0表示没有错误,其他任何值表明有错误  ##最后命令的退出状态:0

运行当前脚本:./bian_trans2.sh 1 2 3

备注:$*与$@的区别

相同点:都是引用所有参数。

不同点:只有在双引号中体现出来。

#!/bin/bash

###演示$*的效果

echo "-----\$*的演示效果----"

for i in "$*";do

echo $i

done

###打印效果:-----$*的演示效果----

1 2 3

###演示$@的效果

echo "-----\$@的演示效果-----"

for j in "$@";do

echo $j

done

###打印效果:-----$@的演示效果-----

1

2

3

最新文章

  1. MyEclipse开发Java Web项目步骤
  2. 【转】Cordova文件传输插件fileTransfer
  3. Java-->List&Set
  4. SQLServer Ansi_Padding的用法
  5. jQuery-瀑布流-浮动布局(一
  6. Android的Service的创建与使用
  7. NDK中使用pthread多线程中自己写的一个BUG
  8. 解决Maven项目总是回跳到jdk1.5的情况的方法
  9. EntityFramework用法探索(八)事务处理
  10. hud1007 Quoit Design
  11. 1.Tomcat配置.md
  12. 处理 Java Tomcat 的“Cannot allocate memory”错误
  13. Linux应用程序设计之网络基础编程
  14. IO流-递归遍历目录下指定后缀名结尾的文件名称
  15. hadoop之存储篇
  16. Codeforces 839D Winter is here(容斥原理)
  17. Selenium自动化测试第一天(上)
  18. BZOJ1911:[Apio2010]特别行动队——题解
  19. 一个tomcat中部署多个项目
  20. QPS、PV和需要部署机器数量计算公式

热门文章

  1. 《细说PHP》第四版 样章 第23章 自定义PHP接口规范 9
  2. onunload事件不触发的探索
  3. 为了“小命”,这款APP一定要下!火爆了!
  4. swoole中使用task进程异步的处理耗时任务
  5. Elastic:用Docker部署Elastic栈
  6. 一个匹配字字符串是aabbcc或者其他模式的运用
  7. canvas绘制流程图
  8. QT QNetworkAccessManager 如何支持RESTFul的HTTP Patch方法
  9. Gradle使用的简单了解
  10. [N久以前发布的文章]php 获取yahoo股票csv数据并封闭成为接口输出json数据