【转】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编程中经常⽤到的是“$@”这个代表所有的参数,你可以⽤⼀个循环来遍历这个参数.
(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
输出参数:
arg1shell代码
arg2
arg3
arg4
xxx
这个例⼦中,我们⽤到了之“$@”,它代表了所有的命令⾏参数。
在这⾥⽤for对其进⾏遍历,系统迭代地从$@中取出命令⾏参数把他放到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
原⽂:blog.csdn/openbox2008/article/details/80526329 版权声明:本⽂为博主原创⽂章,转载请附上博⽂链接!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。