博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shell参数的传递
阅读量:4100 次
发布时间:2019-05-25

本文共 1132 字,大约阅读时间需要 3 分钟。

我们在执行Shell脚本的时候可以向脚本中传递参数,脚本内获取参数的格式为:$n。 n代表一个数字,1为脚本执行的第一个参数,2为脚本执行的第二个参数… 以此推类。

#!/bin/bash#author:kyhuanecho "shell传递的参数实例!";echo “shell执行的文件名:$0";echo "第一个参数:$1";echo "第二个参数:$2";echo "第三个参数:$3";

为脚本设置可执行权

$ chmod +x test.sh$ ./test.sh 1 2 3

shell传递的参数实例!

第一个参数1
第二个参数2
第三个参数3

参数处理 说明
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数。如"$*“用「”」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$$ 脚本运行的当前进程ID号
$! 进程运行的最后一个ID号
$@ ∗ 相 同 , 但 是 使 用 时 加 引 号 , 并 在 引 号 中 返 回 每 个 参 数 。 如 " *相同,但是使用时加引号,并在引号中返回每个参数。如" 使"@“用「”」括起来的情况、以"$1" “ 2 " … " 2" … " 2""n” 的形式输出所有参数。
$- 显示Shell使用的当前选项,与set命令功能相同。
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
#!/bin/bash# author kyhuanecho "传递参数实例";echo "第一个参数$1";echo "所有参数的个数$#";echo "传递的参数转换成一个字符$*"

执行脚本,输出以下结果:

$ chmod +x test.sh $ ./test.sh 1 2 3Shell 传递参数实例!第一个参数为:1参数个数为:3传递的参数作为一个字符串显示:1 2 3

$* 与 $@ 区别:

相同点:都是引用所有参数。
不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 “1 2 3”(传递了一个参数),而 “@” 等价于 “1” “2” “3”(传递了三个参数)。

#!/bin/bashecho "--\$*演示 --"for i in $*;do    echo $idoneecho "--\$@演示 --"for i in $@;do    echo $idone

执行脚本输出以下结果:

$ chmod +x test.sh $ ./test.sh 1 2 3-- $* 演示 ---1 2 3-- $@ 演示 ---123

转载地址:http://jlksi.baihongyu.com/

你可能感兴趣的文章
Android添加资源文件编译,R文件未重新生成解决办法
查看>>
android 触屏反馈原理
查看>>
android 4.0.3 usb插拔提示音播放问题分析
查看>>
android jni代码编写规则--整理总结
查看>>
智能家居第一步: WiFi 设备怎么连上网
查看>>
【Android开发—智能家居系列】(一):智能家居原理
查看>>
智能设备是如何连接云的
查看>>
Android编程红外编程——红外码详析
查看>>
android 空调遥控器——红外设备(基础)
查看>>
android 空调遥控器——简单发送内容
查看>>
android 空调遥控器——遥控器基本版(功能全部实现)
查看>>
手机里竟然有这么多传感器!终于都搞懂了
查看>>
OneNET平台物联网接入完整代码(设备端+web服务器端)对外开放
查看>>
高通平台MSM8916LCM模块移植(一)-bootloader部分
查看>>
软件工程师必须知道20个知识点
查看>>
Android 如何永久性开启adb 的root权限
查看>>
jenkins构建触发器定时任务Build periodically和Poll SCM【转载】
查看>>
android adb pull
查看>>
android --- 小问题记录
查看>>
在Ubuntu上为Android系统编写Linux内核驱动程序
查看>>