(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编程中常常用到 的是“$@”这个表明全部的参数,你能够用一个循环来遍历这个参数.shell
(2)使用for循环取全部输入的参数
vim /root/test.sh
#!/bin/bash
for args in $@
do
echo $args
done
把上面这段代码录入保存为test.sh,授限可执行chmod +x test.sh:
#sh /root/test.sh arg1 arg2 arg3 arg4 xxx
输出参数:
arg1
arg2编程
arg3
arg4
xxx
这个例子中,咱们用到了之“$@”,它表明了全部的命令行参数。
在这里用for对其进行遍历,系统迭代地从$@中取出命令行参数把他放到args中,最后使用echo $args进行输出。vim
(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} "
donebash