写一个 bash脚本以输出一个文本文件 nowcoder.txt中的行数
#!bin/bash
line=0
while read p
do
((line++))
done < ./nowcoder.txt
echo $line
- 变量赋值等于号左右无空格;
- while read line do done < file 重定向,把file文件循环每一行赋值给line循环中可以对line进行操作;(read通过输入重定向,把file的第一行所有的内容赋值给变量line,循环体内的命令一般包含对变量line的处理;然后循环处理file的第二行、第三行。。。一直到file的最后一行。
还记得while根据其后的命令退出状态来判断是否执行循环体吗?
是的,read命令也有退出状态,当它从文件file中读到内容时,退出状态为0,循环继续进行;
当read从文件中读完最后一行后,下次便没有内容可读了,此时read的退出状态为非0,所以循环才会退出。) - 双小括号。参考 整数扩展。这种扩展计算是整数型的计算,不支持浮点型。((exp))结构扩展并计算一个算术表达式的值,如果表达式的结果为0,那么返回的退出状态码为0,或者 是"假",而一个非零值的表达式所返回的退出状态码将为1,或者是"true"。若是逻辑判断,表达式exp为真则为1,假则为0。
- echo想输出变量值必须加$,否则输出字符串;
推荐阅读
- Linux|Linux下的权限理解
- linux|linux 下关闭远程终端进程不退出的四种方法
- Linux|Linux Shell脚本实现自动交互
- 运维|Anolis龙蜥升级kernel
- Linux|熟悉Linux Shell
- Linux|Linux常用的系统工作命令
- Linux|Linux常用指令大全【详解】
- linux之旅|linux命令行(五)管理用户和组
- linux|shell编程--三剑客之sed