交互输入与for语句
交互输入与for语句
1、交互输入
输入:read 变量
常用参数:
-p // 提示
-t // 定义超时时间(要写在-p前面)
脚本默认值:
当没有输入变量值并想直接向下运行,这时需要默认值;
输出:echo “”
常用参数:
-n // 取消换行
-e // 使echo命令能够识别特殊字符
常用的特殊字符:\r \n \t
2、For语句循环
格式:
For 变量 in 列表;do
循环体
done
[对象必须是同类数据]
列表生成方式:
2、1直接给出字符串列表
2、2整数列表
a{start ... end}
B seq 命令引用 $(seq [start[step]] end)
2、3返回列表命令
$(COMMAND)
2、4glob机制
示例:同上脚本功能
2、5变量引用
$@ $* 将参数作为for循环的列表
3、case语句
-- 做匹配
case语句的语法格式:
case 变量 in
PATTEN1)
代码块1
;;
PATTEN2)
代码块2
;;
*)
代码库
esac
例:
1)、文件判断脚本
#!/bin/bash # read -p "输入一个文件名:" name if [ -z $name ];then echo "Usage:'输入一个文件名:/etc/fstab'" exit 1 fi if [ ! -e $name ];then echo "提示:输入的文件不存在!!" exit 2 elif [ -f $name ];then echo "$name is a file" elif [ -d $name ];then echo "$name is a dir" elif [ -b $name ];then echo "$name is a block file" elif [ -L $name ];then echo "$name is a Link file" else echo "$name是其他文件类型" fi
2)、九九乘法表
#!/bin/bash # for i in `seq 9`;do for j in `seq 9`;do [ $j -le $i ] && echo -n -e "$i*$j=`echo $(($i*$j))`\t" done echo " " done
第二种方法
#!/bin/bash # 99乘法表 for i in {1..9};do for j in {0..$i} ; do ?? echo -n -e "$j*$i=$[$i*$j]\t" done echo done
3)、写一个for循环,遍历本网络网段中所有up的电脑
#!/bin/bash # 遍历 declare -i sum=0 for i in $(seq 1 100);do ping -c 1 -w 1 10.6.12.$i &> /dev/null if [ $? -eq 0 ];then let sum++ echo "10.6.12.$i 是通的" else echo "10.6.12.$i 是不通的" fi done echo "总共有 $sum 台电脑在线"
4)、求1到100偶数和
#!/bin/bash # 偶数和 declare -i sum=0 for i in $(seq 0 2 100);do let sum+=$i done echo “总数为:$sum”
5)、判断 /var/log/ 的所有文件,以 .log 结尾的文件统计处理啊,并显示:
#!/bin/bash # declare -i sum=0 for i in $(ls /var/log/);do if [ "*.log" = $i ];then echo $i let sum++ fi done echo ".log结尾的文件有:$sum"
vim 常见用法:
命令模式:
dd 剪切
5dd
p 粘贴
yy 复制
5yy
p 粘贴
4、glob机制 -- 文件名通配符的机制
$(ls /var/log/)
/var/log/*
test命令总结:
1)、test的命令的option的 -a -o 只在命令中使用;
例如 [ `du -h $filename | cut -d: -f1` -lt 100K -a -x $filename ]
test `du -h $filename | cut -d: -f1` -lt 100K -a -x $filename
注意:做字符串匹配的时候,不支持正则以及通配符
2)、test test == [[ ]]
再连接两个test的命令的时候,不能使用命令内部option -o -a
一般使用 || && == != >= <=
[[ yum.log == *.log ]]
5、变量引用
$@ $* 将参数做为for循环的列表
原文地址:https://www.cnblogs.com/yxq-123/p/11360352.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法