【转】shell脚本中如何传入参数

(1)直接用$1,$2取传入的参数
vim /root/test.sh
#!/bin/bash
if [ $1 == "start" ]
  then   
  echo "do start"
  command groups
  elif [ $1 == "stop" ]
  then
  echo "do stop"
  command group
  else
  echo "Please make sure the positon variable is start or stop."
fi

#sh test.sh stop

$1取到了stop这个参数,接收来自命令行传入的参数,第一个参数用$1表示,第二个参数$2表示,。。。以此类推。
注意:$0表示脚本文件名。另外一个在shell编程中经常用到 的是“[email protected]”这个代表所有的参数,你可以用一个循环来遍历这个参数.

(2)使用for循环取所有输入的参数
vim /root/test.sh
#!/bin/bash
for args in [email protected]
do
   echo $args
done

把上面这段代码录入保存为test.sh,授限可执行chmod +x test.sh:
#sh /root/test.sh arg1 arg2 arg3 arg4 xxx
输出参数:
arg1
arg2

arg3
arg4
xxx

这个例子中,我们用到了之“[email protected]”,它代表了所有的命令行参数。
在这里用for对其进行遍历,系统迭代地从[email protected]中取出命令行参数把他放到args中,最后使用echo $args进行输出。

(3)遍历当前目录下的文件
for更经常用到的是遍历目录,下面的例子用于列出当前目录下的所有文件和文件夹的名称
不用编辑脚本,在命令行,直接输入以下命令:
 for file in *
 do
 echo $file
 done
 
这里用*代表当前目录,列出的是所有的文件和文件夹的名称,在这里,文件夹和文件你是分不出来的,如果你需要,你应该用if [-d ${file}]来做一下判断。
只输出目录名:
vim /test.sh
for file in *
do
   if [ -d $file ]; then
     echo $file
   fi
done

(4)对于文件遍历,可以在 “in” 后面接上多个表达式。也就是说,你可以一次在遍历多个目录。
下面这段代码能把当前目录下/etc文件夹和/var文件夹里的文件
#!/bin/bash
for args in /etc/* /var/*
do
  echo "print ${args} "
done

---------------------
作者:openbox2008
来源:CSDN
原文:https://blog.csdn.net/openbox2008/article/details/80526329
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/yanwuliu/p/10032640.html

时间: 2024-10-28 22:46:03

【转】shell脚本中如何传入参数的相关文章

Shell脚本中判断输入参数个数的方法投稿:junjie 字体:[增加 减小] 类型:转载

Shell脚本中判断输入参数个数的方法 投稿:junjie 字体:[增加 减小] 类型:转载 这篇文章主要介绍了Shell脚本中判断输入参数个数的方法,使用内置变量$#即可实现判断输入了多少个参数,需要的朋友可以参考下 $#代表了命令行的参数数量,可以看以下实例: 复制代码 代码如下: if [ $# != 1 ] ; then echo "USAGE: $0 TABNAME" echo " e.g.: $0 CDR_CALL_20040701" exit 1; f

学习Shell脚本编程(第3期)_在Shell程序中使用的参数

位置参数 内部参数 如同ls命令可以接受目录等作为它的参数一样,在Shell编程时同样可以使用参数.Shell程序中的参数分为位置参数和内部参数等. 3.1 位置参数 由系统提供的参数称为位置参数.位置参数的值可以用$N得到,N是一个数字,如果为1,即$1.类似C语言中的数组,Linux会把输入的命令字符串分段并给每段进行标号,标号从0开始.第0号为程序名字,从1开始就表示传递给程序的参数.如$0表示程序的名字,$1表示传递给程序的第一个参数,以此类推. 3.2 内部参数 上述过程中的$0是一个

Linux shell脚本中shift的用法说明

Linux shell脚本中shift的用法说明 shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本). 示例1:依次读取输入的参数并打印参数个数: run.sh: #!/bin/bash while [ $# != 0 ];do echo "第一个参数为:$1,参数个数为:$#" shift done 输入如下命令运行:run.sh a b c d e f 结果显示如下: 第一个参数为:a

shell脚本中常见的一些特殊符号和作用详解

这篇文章主要介绍了shell脚本中常见的一些特殊符号和它的作用详解,总结的很简洁,容易看懂,需要的朋友可以参考下 在编写Shell脚本时,我们需要会用到各种各样的特殊符号,通过这些特殊符号可以使我们编写的代码更加简洁和高效,这里给大家汇总下: 1.{} 大括号: 用法一:通配符扩展eg: ls my_{finger,toe}s这条命令相当于如下命令的组合:ls my_fingers my_toeseg: mkdir {userA,userB,userC}-{home,bin,data}我们将得到

shell脚本中case的用法

shell脚本中case选择语句可以结合read指令实现比较好的交互应答操作,case接收到read指令传入的一个或多个参数,然后case根据参数做选择操作. case的语法如下 case $char in C | c ) command 1 ;; #每一个选择都以双 ;; 结束 M | m ) command 2 ;; * ) # * 未匹配到相符的其他值 echo "error" ;; esac #case的结束语句是以esac 结束 下面结合一个简单的小功能使用,脚本中同时也用到

20.1 Shell脚本介绍;20.2 Shell脚本结构和执行;20.3 date命令用法;20.4 Shell脚本中的变量

20.1 Shell脚本介绍 1. shell是一种脚本语言 aming_linux blog.lishiming.net 2. 可以使用逻辑判断.循环等语法 3. 可以自定义函数 4. shell是系统命令的集合 5. shell脚本可以实现自动化运维,能大大增加我们的运维效率 20.2 Shell脚本结构和执行 1. 开头(首行)需要加: #!/bin/bash 2. 以#开头的行作为解释说明: 3. 脚本的名字以.sh结尾,用于区分这是一个shell脚本 4. 执行.sh脚本方法有两种:

在shell脚本中进行条件控制以及使用循环

转载请标明:http://www.cnblogs.com/winifred-tang94/ if条件语句语法: if [ 条件表达式 ] then 代码 else 代码 fi 注意:在上面的if条件语句中,if和 [ 之间要有空格,而条件表达式和两边的 [ ] 都要有空格,条件表达式不能紧挨着 [ 和 ]. if条件表达式以fi结束. Eg. 结果出现了以下问题: 原因是因为开头在#!后还要有一个/,加上/后解释器错误没有了,代码如下: 可是仍然有没有那个文件或目录的错误.对于这个错误我觉得是e

shell脚本中实现自动判断用户有无密码

在最近完成老师布置的作业的时候遇到了如何让shell脚本中的命令自动判断一个用户是否已设置密码的问题,虽然看似不是很难的一个问题,但是在这一功能实现的过程中却包含了许多细小的而重要的知识.刚开始小编对此很是头疼,虽然我们查看一个用户是否有密码并不是很难,直接cat /etc/shadow这个文件看看密码位是否有加密的字符就行了,但是让命令自己去判断和匹配就不是很顺利了,小编上网查看后,并没有得到很好的答案,大多数都是人工查看的答案,并不适用于shell脚本中自动的判断,所以在认真对比/etc/p

shell脚本中echo显示内容带颜色

转自:http://www.cnblogs.com/lr-ting/archive/2013/02/28/2936792.html shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e 格式如下: echo -e "\033[字背景颜色:文字颜色m字符串\033[0m" 例如: echo -e "\033[41;36m something here \033[0m" 其中41的位置代表底色, 36的位置是代表字的颜色 注:  1.字背景颜