day12 bash中的if、for
bash
变量bash
定义:x=
作用:记录状态
规则:字母开头,后面可以接字母、数字、下划线
export args:将变量定义为全局变量
$$[]:括号中可以进行简单的数学整数运算,可以用echo打印出输出的结果
(()):两个括号中可以进行逻辑运算
$?:查看上次命令执行结果,非零表示失败
==:判断
!=:不等于
&&:逻辑与
||:逻辑或
((x+=))/x=$[$x+]:x+1的运算
expr + :有空格,像当与1+
echo 'scale=2;1/3'|bc -l:取1/3的两位小数
echo 'scale=2;1/3'|bc -l|cut -d'.' -f2:取两位小数,用.将它分割,取第二部分
test向当与[ ]有空格:
中间加 -a and
-o or
= 测试左右字符串是否为空
!= 不等于
-eq 判断整数是否相等
-ne 不相等
-b 后面加文件名,判断文件是否存在且为块设备
-d 后面加文件名,判断文件是否为文件
-e 后面加文件名,判断文件是否为存在
-f 后面加文件名,判断文件是否为存在且为普通文件
-h 后面加文件名,判断文件是否为链接文件 前面加 -n 不为空即正确
-z 长度为零即为空
if判断
#!/bin/bash
read -d 'username: ' user
read -d 'paddword: ' password if [ $user = 'alex' -a $password = 'alex' ];then
echo 'login successful'
fi
while循环
#!/bin/bash oldboy_age= while : # :表示真
do
read -p 'age: ' age if [ -z $age ]
then
echo 'None!!'
continue
fi if [ $age -eq $oldboy_age ]
then
echo 'Done'
break
elif [ $age -lt $oldboy_age ]
then
echo 'Too young'
elif [ $age -gt $oldboy_age ]
then
echo 'Too old'
else
echo 'Wrong!!'
fi
done
for循环
for 循环形式
#!/bin/bash for i in {..}
do
echo $i
done =========================================================
ping -c1 192.168.. ping 一次
ping -c1 192.168.. &> /dev/null 不在终端显示
tail -f /tmp/.. 动态查看地址 for i in $(ls)
do
# 依次打印出目录
done
======================================================== bash for 循环形式
#!/bin/bash for ((i=;i<=;i++))
do
echo $i
done
=======================================================
打印格式
echo -n '' 不换行
检测IP
ping IP
#!/bin/bash ip_head='192.168.16.' # 设置ip前面三位 for ((i=;i<=;i++)) # 循环20次,因为有点慢,所以循环少点
do # 循环开头标志
echo "$ip_head$i" # 将ip前面三位和i拼接起来
ping -c1 "$ip_head$i" &> /dev/null # ping IP,将打印结果丢弃
if [ $? -ne ] # 查看上面ping的结果,是否成功
then # if判断开头的标志
echo 'sucessful' # 如果ping不通,则打印成功,表示可用
fi # if判断的结尾标志
done
99乘法表
#!/bin/bash for((i=;i<=;i++)) # 外循环9次
do
for((j=;j<=i;j++)) # 内循环为1-9次
do
echo -n "$j*$i=$[j*i] " # 列式子,-n表示不回车,后面用空格分割
done
echo
done
模拟终端控制
#!/bin/bash while : # :表示真
do
read -p '>>' cmd # 获取一个输入
if [[ -z $cmd ]] # 如果为空,执行下面then
then
continue # 进入下一次循环
elif [[ $cmd='quit' ]] # 如果cmd的值为quit
then
break # 跳出本次循环
fi
$cmd # 执行变量cmd里面的命令
done
day12 bash中的if、for的更多相关文章
- Bash 中的 $0 在什么时候不是 argv[0]
每个 C 程序都有一个 main 函数,每个 main 函数都有一个 argv 参数,这个参数是一个字符串数组,这个数组的值是由该 C 程序的父进程在通过 exec* 函数启动它时指定的. 很多人说 ...
- Bash中的任务(job)管理
本来不准备写这篇博客的,因为任务管理(job管理)非常非常常用,以至于觉得根本没有必要去写这样一个东西.但想了下,还是记录一下吧,也许有人会用到呢. 不知你是否碰到过这样的情况,当你兴致勃勃的打开VI ...
- bash中不可以用字符串做数组下标
bash中可以用字符串做数组下标吗例如 test["abc"]=1------解决方案-------------------- 好像是误会,是awk里可以,bash shell里不 ...
- Linux bash 中,如何将正常信息和错误信息输出到文件
问题描述: $ command 2>> error $ command 1>> output 是否有方法,在bash同一行,实现输出stderr到error文件,输出stdou ...
- bash 中的变量
bash 中的变量 Linux command line 笔记 变量无需声明,自动创建 var=abc #变量a赋值为字符串abc var="hello world" #字符串里有 ...
- Bash中的shopt选项
Bash中的shopt选项 http://blog.chinaunix.net/uid-20587169-id-1919110.html shopt命令用于显示和设置shell中的行为选项,通过这些选 ...
- bash中一些基础知识
bash是linux操作系统的shell.以下是Multi-Perspective Sentence Similarity Modeling论文实现时碰到的一个bash: #!/bin/bash py ...
- Bash中的位置参数和特殊参数
#Bash中的位置参数和特殊参数 #Bash中的位置参数是由0以外的一个或多个数字表示的参数.#位置参数是当Shell或Shell函数被引用时由Shell或Shell函数的参数赋值,并且可以使用Bas ...
- bash中的数值运算
第一种,使用((表达式)): a=3 ((b=a+2)) echo $b 第二种使用let: let "c=$a+4" echo $c 第三种,使用expr表达式(注意空格不能少) ...
随机推荐
- VS系列远程调试
其实很多时候,远程调试的话,我还是更喜欢用WinDBG的, 首先,可以练习WinDBG的使用手段, 其次,可以增加WinDBG的熟练度, 最重要的,WinDBG在内核调试部分很常用,我也很喜欢它,所以 ...
- Java中static关键字,this关键字
static修饰的成员方法和成员变量都是类方法和类变量,随类的加载而加载 static方法可以直接调用另一个static方法 static中调用普通方法可以通过类的实例对象调用 static不可以修饰 ...
- Vue双向数据绑定原理深度解析
首先,什么是双向数据绑定?Vue是三大MVVM框架之一,数据绑定简单来说,就是当数据发生变化时,相应的视图会进行更新,当视图更新时,数据也会跟着变化. 在分析其原理和代码的时候,大家首先了解如下几个j ...
- (Struts2学习系列二)Struts2动态方法调用:指定method属性
紧接着上一篇,在HelloWorldAction.java中添加add和update方法: public class HelloWorldAction extends ActionSupport{ p ...
- vim - Vi IMproved, 一个程序员的文本编辑器
总览 (SYNOPSIS) vim [options] [file ..] vim [options] - vim [options] -t tag vim [options] -q [errorfi ...
- uname - 显示输出系统信息
总览 uname [OPTION]... 描述 显示相应的系统信息. 没有指定选项时,同 -s. -a, --all 显示所有的信息 -m, --machine 显示机器(硬件)类型 -n, --no ...
- ubuntu系统设置密码报错 Module is unknown
修改账户密码报错 # passwd 报错信息 passwd: Module is unknown passwd: password unchanged 修改配置文件 # cd /etc/pam.d ...
- 保护Laravel .env文件,防止直接访问
web服务器: Apache 服务器系统: Ubuntu 14.04 如果不是vhost的形式部署在服务器上,可能是可以通过 http://www.example.com/.env 查看到larave ...
- 53 windows 系统下
0 引言 本篇主要记录windows下编程以及系统安装与恢复等问题. 1 Visual Studio (1)debug "warning LNK4042: 对象被多次指定:已忽略多余的指定& ...
- POJ2449-A*算法-第k短路
(有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 题意:传送门 原题目描述在最下面. 给你一个有向图,求指定节点间的第k短路. 思路: 先反向跑出从终点开始的到每个节点的最短距离 ...