linux交互式脚本编写,谢烟客---------Linux之bash脚本编程---用户交互
系统管理部分一:
分区、创建、查看、调整、挂载、文件系统的结构、硬链接、软链接
脚本"语法错误"非逻辑错误检测:
# bash -n script.sh
单独执行,脚本执行每个代码
# bash -x script.sh
+ 程序在执行
没有+ 程序过程中应该输出的信息
脚本的格式
+++++++++++++++++++++++++++++++++非格式,用于分割++++++++++++++++++++++++++++++++++
#!/bin/bash ##魔数
# Version: major.minor.release (主版本呈,次版本呈,发行号)
# Author: ##作者
# Description: ##对脚本的描述信息
+++++++++++++++++++++++++++++++++非格式,用于分割++++++++++++++++++++++++++++++++++
#号开头为注释
read命令1、查看所有内建命令
[root@localhost ~]# enable -a
enable .
...
enable read ##内建命令
2、获取帮助
[root@localhost ~]# help read
Read a line from the standard input and split it into fields.
一行从标准输入读入后,以空白字符切割此行成字段,对位保存字段至变量中
******用于特殊场景,需要人参与的场景**********
read [OPTIONS....] [name...]
-p "PROMPT" ## 提示
-t TIMEOUT ## 超时时长,单位为 秒
read -p "Enter a name: " name 相当于: echo -n "Enter a name: "; read name
使用示例
1、一行从标准输入读入后,切割此行成字段,对位保存字段至变量中[root@localhost ~]# read name
hello obama!
[root@localhost ~]# echo $name
hello obama!
[root@localhost ~]# read name
obama
[root@localhost ~]# echo $name
obama
2、对位保存字段释义,如果多余的位,变量为空[root@localhost ~]# read a b c
hello obama!
[root@localhost ~]# echo $a
hello
[root@localhost ~]# echo $b
obama!
[root@localhost ~]# echo $c
[root@localhost ~]#
3、等待用户输入命令
语法: read -p 'PROMPT' name
相当于: echo -n "PROMPT" ; read name[root@localhost ~]# printf "Enter a username: "; read name
Enter a username: obama
[root@localhost ~]# echo $name
obama
[root@localhost ~]#
4、避免用户不输入,堵塞在此处,给出超时。此时变量为空[root@localhost ~]# read -t 5 -p 'Enter a name: ' name
Enter a name: [root@localhost ~]# echo $name
[root@localhost ~]#
脚本示例:
提示用户输入一个设备文件,存在则显示磁盘信息。
1、脚本#!/bin/bash
# Version: 0.0.1
# Author: Lcc.org
# Desc: read testing
read -t 5 -p 'Enter a disk special file: ' diskfile
[ -n "$diskfile" ] || exit 1 ## 不存在,则退出
if fdisk -l | fgrep "Disk $diskfile" > /dev/null 2>&1
then
fdisk -l $diskfile ## 条件的执行状态结果为0
exit 0
else
echo "No such file." ## 条件的执行状态结果不为0
exit 1
fi
2、检测语法错误[root@localhost scripts]# bash -n test.sh
3、给x权限[root@localhost scripts]# chmod +x test.sh
4、给一个路径测试1、正确路径
[root@localhost scripts]# ./test.sh
Enter a disk special file: /dev/sda
Disk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000777f3
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 12813 102400000 8e Linux LVM
/dev/sda3 12813 14118 10489811 83 Linux
/dev/sda4 14119 15665 12426277+ 5 Extended
/dev/sda5 14119 15424 10490413+ 82 Linux swap / Solaris
2、错误路径
[root@localhost scripts]# ./test.sh
Enter a disk special file: how
No such file.
[root@localhost scripts]# echo $?
1
[root@localhost scripts]#
linux交互式脚本编写,谢烟客---------Linux之bash脚本编程---用户交互相关推荐
- 在ubuntu linux 中编写一个自己的bash脚本
在ubuntu linux 中编写一个自己的简单的bash脚本. 实现功能:终端中输入简单的命令(以pm为例(play music)),来实现音乐的播放.注:本人ununut中安装了audacious ...
- linux编写脚本读取txt文件,用bash脚本或者批处理 bat脚本 读取一个目录下.txt文件第一行内容存放到新文件a.txt...
起因:我把cmd 控制台说成了dos! 发展:人类生气了,跟我扯了一堆 dos 还有什么玩意儿,在我第二次还说那个是dos界面以后:( 后续:人类要我写 批处理bat 还有linux bash 脚本去 ...
- linux 脚本编写基本命令,Linux Shell命令行及脚本编程实例详解
<Linux典藏大系:Linux Shell命令行及脚本编程实例详解>共15章,分为两篇.主要内容包括:Linux 及Linux Shell简介.初识Linux Shell.常用Shell ...
- aws linux 安装图形,linux – 用于安装AWS CLI工具的Bash脚本
我正在编写一个自动安装和配置AWS CLI工具的bash脚本.我可以安装AWS CLI工具,但无法配置它. 我的脚本是这样的: #!/bin/bash wget https://s3.amazonaw ...
- linux系统写一个脚本,编写一个简单的linuxshell脚本
shell脚本和windows平台上的bat批处理是一样的,简化用户处理重复动作的操作,shell脚本由shell命令组成.下面是学习啦小编收集整理的编写一个简单的linuxshell脚本,希望对大家 ...
- Linux初级运维(七)——bash脚本编程(常见测试)
一.bash中常用的条件测试 测试方法: [ expression ] [[expression]] test expression 1.整数测试 -gt:大于 -le:小于等于 -ne:不等于 -e ...
- bash 脚本编写_如何在Bash中编写循环
bash 脚本编写 人们想要学习Unix shell的一个常见原因是释放批处理的功能. 如果要对多个文件执行某些操作,一种方法是构造一个遍历这些文件的命令. 在编程术语中,这称为执行控制,最常见的示例 ...
- bash脚本 文件_如何使用Bash脚本来管理从AWS S3存储桶下载和查看文件
bash脚本 文件 As you can read in this article, I recently had some trouble with my email server and deci ...
- 使用脚本编写 Vim 编辑器,第 2 部分: 用户定义函数
用户定义函数 Haskell 或 Scheme 程序员会告诉您,函数对于任何严肃的编程语言来说都是最重要的特性.对于 C 或 Perl 程序员,他们也会告诉您完全相同的观点. 函数为严肃的程序员提供了 ...
- linux中利用脚本编写数组,Linux基础之bash脚本进阶篇-数组(示例代码)
数组 什么是数组? 计算机中的数组指的是具有相同类型的若干变量按照一定的顺序组织起来的一种数据类型. 通俗点来说数组就是变量的一种,按现在的术语来说就是变量圈子中的一个,只不过这个变量圈子都是相同类型 ...
最新文章
- 一篇文章教会你利用Python网络爬虫获取Mikan动漫资源
- 一段java代码是如何执行的?
- 《强化学习周刊》第13期:强化学习应用之金融
- 深度学习的基础知识(机器学习、损失函数、梯度下降、反向传播、基础模型一网打尽)
- 宏BOOST_TEST_REF的用法程序
- 软件工程--第二章--可行性分析
- 如何在 ASP.NET Core 中 自定义中间件
- 顺丰快递,果然不一般!
- mysql架设_主从mysql架设
- 接口自动化测试_Python自动化测试学习路线之接口自动化测试「模块四」
- 计算机二级地15套题答案,计算机二级第15套答案解析.docx
- EXPLAIN mysql性能调优
- c语言 异或_C语言位逻辑运算符的四种逻辑:取反,并,或,异或
- java adminlte 使用_AdminLTE框架基础布局使用
- C#程序之快速切换IP地址
- 占优策略名词解释_占优策略
- JOI2014Final 飞天鼠
- 高产攻关保全年粮丰 国稻种芯·中国水稻节:广西多措并举
- 快递查询接口-快递鸟对接方案
- 迪米特法则 php,迪米特法则(The Law of Demeter) -解道Jdon
热门文章
- 概率论得学习整理--番外3:二项式定理和 二项式系数
- Android初级教程 - 四大存储之SP存储
- TPA4411RTJR 无电容立体声耳机驱动器 封装:QFN20
- DELL服务器 一般内存模块安装原则
- Redis的那些事儿:关系型和非关系型数据库,非关系型数据库的类型,redis数据类型、编码格式、高性能、可以做什么、分布式锁失效的原因,string为采用sds数据类型,为什么是二进制安全的,
- redis源码阅读三-终于把主线任务执行搞明白了
- PCB四层板设计步骤
- Kmeans、Kmeans++、Birch和KNN四种聚类算法对二维坐标点的聚类分析对比实验
- 互联网寒冬?软件测试行业饱和了?为何每年还会增加40万测试员?
- gevent和requests同时使用报requests.exceptions.ReadTimeout:HTTPSConnectionPool(host='www.baidu.com', port=4