目录
for的用法(明确次数)
for的范围表达式
for i in {1..100}; do
let sum+=i
done
whie的用法(明确结束条件)
i=0
while [ $1 -lt 10 ]; do
xxxxxx
done
$ 符号的用法
$0:Shell 的命令本身
$1 到 $9:表示 Shell 的第几个参数
$? :显示最后命令的执行情况
$#:传递到脚本的参数个数
$$:脚本运行的当前进程 ID 号
$*:以一个单字符串显示所有向脚本传递的参数
$!:后台运行的最后一个进程的 ID 号
$-:显示 Shell 使用的当前选项
————————————————
版权声明:本文为CSDN博主「Jack Tian」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jake_tian/article/details/97274630
grep 的用法
这个命令都不陌生,最常用的就是和管道符结合
例如:ps -ef | grep docker。
Grep称为全局正则表达式检索工具,在企业中被广泛的采用。
-a 不要忽略二进制数据。
-A<显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。
-b 在显示符合范本样式的那一行之外,并显示该行之前的内容。
-c 计算符合范本样式的列数。
-C<显示列数>或-<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
-e<范本样式> 指定字符串作为查找文件内容的范本样式。
-E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
-f<范本文件> 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
-F 将范本样式视为固定字符串的列表。
-G 将范本样式视为普通的表示法来使用。
-h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-H 在显示符合范本样式的那一列之前,标示该列的文件名称。
-i 忽略字符大小写的差别。
-l 列出文件内容符合指定的范本样式的文件名称。
-L 列出文件内容不符合指定的范本样式的文件名称。
-n 在显示符合范本样式的那一列之前,标示出该列的编号。
-q 不显示任何信息。
-R/-r 此参数的效果和指定“-d recurse”参数相同。
-s 不显示错误信息。
-v 反转查找。
-w 只显示全字符合的列。
-x 只显示全列符合的列。
-y 此参数效果跟“-i”相同。
-o 只输出文件中匹配到的部分。
————————————————
版权声明:本文为CSDN博主「我就叫贝塔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44984864/article/details/107141332
注释:
- [ ]命令相当于test命令(检查文件和比较值)
- e.g. : if [ $# -eq 1]
if 或elif 后面跟的条件,事实上是一条可执行的程序,判断的依据是该程序是否执行成功
if 条件;
then
命令
fi
如果脚本的参数个数少于3个,则提示用户需要3个参数:
if [ $# -lt 3 ]; then
echo "sorry, it needs 3 args"
fi
if 条件; then
命令1
fi
if 条件; then
命令1
else
命令2
fi
提示用户输入他的账号,并显示欢迎信息,如为空贝提示:
echo "please input your name : "
read NAME
if [ "SNAME" =""]; then
echo "Your name is null"
else
echo "welcome,SNAME"
实例
1、#获取文件一行一行的内容,加上行号进行输出:
line=1
while read FILE
do
echo "$line: $FILE"
let line++
done < /etc/group
2、 # 计算从1-10相加
#sum=0
#for i in 1 2 3 4 5 6 7 8 9 10; do
# sum=`expr $sum + $i`
# let sum=sum+i
# let sum+=i
# ((sum+=i))
#done
#echo "1+...+10=$sum"
sum=0
for i in {1..100}; do
let sum+=i
done
echo "1到10的和为: $sum"
3、#通过参数决定对每个文件进行查找,并输出相应的行号
if [ ${#} -gt 1 ] ; then
echo "参数请小于1!!!"
exit 100
elif [ ! -e ${1} ] ; then
echo "文件不存在"
else
grep -n root $1
fi