Shell:Day05.笔记
read Python中用input()函数,进行输入;
read命令同时可以定义多个变量值;而输入的内容默认以空格为分隔符,将值输入到对应的变量中;
如果默认值过多,最后所有的变量则为空值;
如果默认值过少,多余的变量则为空值;
示例:
read a b c
aa bb cc
read如何输入:
echo "请输入一个目录:"
我们需要 echo -n 取消换行符号
echo "请输入一个目录:";read 变量
请输入一个目录:\etc
常用参数:
-p
read -p "请输入一个目录:" 变量
-t 定义超时时间
read -t 5 -p "请输入一个目录:" 变量
[-n $filename] &&
filename="why"
| |
输入是否正确--------- 没有输入------------------
| | | |
正确 不正确,给提示 提示必须输入 给出默认值
#!/bin/bash
#
read -t 5 -p "输入一个设备文件名:" devname
[ -z $devname ] && fdisk -l && exit 1
fdisk -l /dev/$devname
exit 0
else
echo "$devname 不是设备文件"
echo "Usage:'请输入一个设备文件,如 sda'"
fi
#!/bin/bash
#
read -p "输入一个文件名:" name
if [ -z $name ];then
echo "Usage:'输入一个文件名:/etc/fstab'"
exit 1
fi
echo "提示:输入的文件不存在!!fool"
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
case 语句? -- 做匹配
case语句的语法格式:
PATTEN1)
代码块1
;;
PATTEN2)
代码块2
;;
*)
代码库
esac
for语句的应用场景:
有一个功能,这个功能需要循环执行,只是执行对象不同;【对象必须是同类数据】
a=['a','b','c'] -- 在Python程序中,我们很多情况下,需要调用相应的方法去生成列表;
for 变量 in 列表;do
循环体
done
{1..9}
#!/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
# 99乘法表
for i in {1..9};do
for j in {0..$i} ; do ??
echo -n -e "$j*$i=$[$i*$j]\t"
done
echo
done
-e : 使echo命令,能够识别 特殊字符;
\r 回车不换行
\n 换行符
\t 制表符 tab = 4个空格
unix2dos \r\n -- > \n
dos2unix
1、直接给出字符串列表
for i in a b c d e ;do
循环体
done
a {start ... end} // {1..1}是不行的 {1..9} == python range{1,100}
b seq 命令引用 $(seq [start [step]] end)
步长 python range{1,100,2}
seq 20 30
#!/bin/bash
# ping遍历
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
#!/bin/bash
# 偶数和
declare -i sum=0
let sum+=$i
done
$(COMMAND)
应用场景: ls /var/log/
题目:判断 /var/log/ 的所有文件,以 .log 结尾的文件统计处理啊,并显示:
#
declare -i sum=0
if [ "*.log" = $i ];then
echo $i
let sum++
fi
done
echo ".log结尾的文件有:$sum"
命令模式:
dd 剪切
5dd
p 粘贴
yy 复制
5yy
p 粘贴
$(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 ]]
$@ $* 将参数做为for循环的列表
while
until
hash
安全:1、加密 2、校验 3、原认证 4、证书认证(不可否性)
2、校验:hash
字符串处理
数组
awk
Shell:Day05.笔记的更多相关文章
- Learning The Bash Shell读书笔记(整理)
最近搞了一本书 Learning Bash Shell,发现有人已经写了阅读笔记,我就在这边整理一下 来自blog:http://blog.sina.com.cn/n4mine Learning Th ...
- SHELL学习笔记----IF条件判断,判断条件
SHELL学习笔记----IF条件判断,判断条件 前言: 无论什么编程语言都离不开条件判断.SHELL也不例外. if list then do something here ...
- Shell编程笔记
Shell编程笔记与Windows下熟悉的批处理类似,也可以将一些重复性的命令操作写成一个脚本方便处理. 修改别人的脚本,运行后遇到个问题 setenv: command not found 查证 ...
- shell学习笔记
shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...
- 菜鸟教程之学习Shell script笔记(上)
菜鸟教程之学习Shell script笔记 以下内容是,学习菜鸟shell教程整理的笔记 菜鸟教程之shell教程:http://www.runoob.com/linux/linux-shell.ht ...
- python day05笔记总结
2019.4.2 S21 day05笔记总结 一.昨日内容回顾与补充 1.extend(列表独有功能) 循环添加到一个列表中 a.有列表users = ['张三',‘李四] people = [' ...
- [转帖][Bash Shell] Shell学习笔记
[Bash Shell] Shell学习笔记 http://www.cnblogs.com/maybe2030/p/5022595.html 阅读目录 编译型语言 解释型语言 5.1 作为可执行程序 ...
- shell学习笔记汇总
1.shell脚本中函数使用 函数定义在前,调用在后,顺序反了就没有效果了.函数调用为:函数名 参数列表 函数内部通过以下变量访问函数的参数:shell脚本函数中: $0: 这个脚本的名字 $n: 这 ...
- shell 学习笔记2-shell-test
一.字符串测试表达式 前面一篇介绍:什么是shell,shell变量请参考: shell 学习笔记1-什么是shell,shell变量 1.字符串测试表达式参数 字符串需要用""引 ...
随机推荐
- JetBrains 第二轮:再为免费全家桶续命三个月
昨天分享了如何通过参与JetBrains的解密任务来获取正版全家桶的兑换码.今天 JetBrains 一早继续在Twitter推出第二波任务: 下面,我们就继续来一起参与一下,为我们的正版JetBra ...
- golang 交叉编译 win开发 linux生产
windows平台之下使用 go env 能看到go本身的配置的环境变量,其中红框框起来的变量是交叉编译需要改动的选项, 由于是win平台开发,但是跑起来的程序都是在linux,所以linux转win ...
- 【python系统学习10】布尔值
python的数据类型有好多个,前边写过字符串.整数和浮点数这三种. 本节来整理另一种简单数据类型--布尔值 布尔值(bool) 布尔值和其数据值 计算机可以用数据进行判断,若判断为真则执行特定条件中 ...
- [android]p7-1 fragment学习笔记
本文源自<android权威编程指南第3版>第7章UI fragment与fragment 第7章主要内容是实现一个记录不良行为的APP(部分实现),有列表,有具体的行为内容显示.第7章主 ...
- Vue2.0 【第二季】第6节 Component 初识组件
目录 Vue2.0 [第二季]第6节 Component 初识组件 第6节 Component 初识组件 一.全局化注册组件 二.局部注册组件局部 三.组件和指令的区别 Vue2.0 [第二季]第6节 ...
- JVM 参数(转)
Herry灬凌夜 转自:https://www.cnblogs.com/wuyx/p/9627542.html 常用的JVM配置参数 一.Trace 跟踪参数 在Eclipse中,如何打开GC的监控 ...
- Java多线程并发05——那么多的锁你都了解了吗
在多线程或高并发情境中,经常会为了保证数据一致性,而引入锁机制,本文将为各位带来有关锁的基本概念讲解.关注我的公众号「Java面典」了解更多 Java 相关知识点. 根据锁的各种特性,可将锁分为以下几 ...
- spring给容器中注入组件的几种方式
目录 环境搭建 spring给容器中注入组件 1.包扫描+组件标注注解(@Controller/@Service/@Repository/@Component)适用于把自己写的类加入组件(默认ID类名 ...
- 【转】Typora极简教程
Typora极简教程 Typora download ” Markdown 是一种轻量级标记语言,创始人是约翰·格鲁伯(John Gruber).它允许人们 “使用易读易写的纯文本格式编写文档,然后转 ...
- c# 自定义含有标题的容器控件(标题背景为渐变色)
1.控件效果图 此效果图中的标题颜色.字号及字体可以在控件属性中设置.标题背景的渐变色及布局内容的背景色也可以在属性中设置. 2.实现的代码(用户控件) public partial class Uc ...