在执行Shell脚本的时候,可以在执行时带上参数,相当于传递参数给脚本,下面我们看一下怎么使用这个参数

以下蓝色字体部分为Linux命令,红色字体的内容为输出的内容:

# cd /opt/scripts

# vim script05.sh

开始编写script05.sh的脚本,脚本内容为:

 #! /bin/sh
echo "$# 个参数"
echo "参数内容:$@"
echo "第一个参数内容:$1" ps -ef|grep $1

# chmod +x script05.sh

# ./script05.sh tomcat

1 个参数
参数内容:tomcat
第一个参数内容:tomcat
root 3618 1 0 03:12 pts/0 00:01:08 /opt/software/jdk1.6.0_45/bin/java -Djava.util.logging.config.file=/opt/software/apache-tomcat-7.0.93/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Dignore.endorsed.dirs= -classpath /opt/software/apache-tomcat-7.0.93/bin/bootstrap.jar:/opt/software/apache-tomcat-7.0.93/bin/tomcat-juli.jar -Dcatalina.base=/opt/software/apache-tomcat-7.0.93 -Dcatalina.home=/opt/software/apache-tomcat-7.0.93 -Djava.io.tmpdir=/opt/software/apache-tomcat-7.0.93/temp org.apache.catalina.startup.Bootstrap start
root 4934 4735 0 06:42 pts/2 00:00:00 /bin/sh ./script05.sh tomcat
root 4936 4934 0 06:42 pts/2 00:00:00 grep tomcat

我来解释一下上面的脚本内容:

第2行中的$#是指传入参数的参数数量

第3行中的$@是指显示所有传入参数的内容

第4行中的$1是指第1个参数的内容,以此类推,$n是指第n个参数的内容

第6行中的ps -ef|grep $1会把我输入的参数tomcat替换到这个$1的位置,执行ps -ef|grep tomcat这个linux指令,用来显示tomcat进程的状态

shell编程中的参数引用:

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

最新文章

  1. WIN32/API/SDK/MFC四者之间的联系和区别
  2. 基于Bayes和KNN的newsgroup 18828文本分类器的Python实现
  3. 后台弹出JS类
  4. 重新想象 Windows 8.1 Store Apps (90) - 通信的新特性: 通过 HttpBaseProtocolFilter 实现 http 请求的缓存控制,以及 cookie 读写; 自定义 HttpFilter; 其他
  5. 转>>在同一个sql语句中如何写不同条件的count数量
  6. FCKeditor jsp配置
  7. spring基于注解的配置文件
  8. Class File Editor: Source not found
  9. 自动化Cobbler安装
  10. COJ 0986 WZJ的数据结构(负十四) 区间动态k大
  11. JAVA多态示例
  12. STL中map用法
  13. yum 安装 nfs,rpcbind 出现错误 libc.so.6(GLIBC_2.14)(64bit) is needed by
  14. mongodb 遇到的问题一 Error: connect ECONNREFUSED 127.0.0.1:27017
  15. 机器学习总结(一) Adaboost,GBDT和XGboost算法
  16. ASP.NET 配置log4net启用写错误日志功能
  17. 第27月第6天 gcd timer
  18. 性能测试三十四:jvm内存结构(栈、堆、永久代)
  19. [BZOJ3173]最长上升子序列
  20. 使用python语言计算n的阶乘

热门文章

  1. Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第一集之安装VMware】
  2. 比较对象--"=="与"equal"的区别
  3. SQL 客户端查看
  4. css美化滚动条
  5. 通过ipmitool找回遗忘的iDrac地址
  6. Django路由详解
  7. ENQUIRE the predecessor to the World Wide Web.
  8. 51nod 算法马拉松30
  9. 2046 ACM 数学
  10. MySQL环境变量的配置