谢烟客---------Linux之bash脚本编程---用户交互

系统管理部分一:

分区、创建、查看、调整、挂载、文件系统的结构、硬链接、软链接

脚本"语法错误"非逻辑错误检测:

# bash -n script.sh

单独执行,脚本执行每个代码

# bash -x script.sh

+        程序在执行

没有+    程序过程中应该输出的信息

脚本的格式

+++++++++++++++++++++++++++++++++非格式,用于分割++++++++++++++++++++++++++++++++++

#!/bin/bash     ##魔数

# Version: major.minor.release (主版本呈,次版本呈,发行号)

# Author:      ##作者

# Description:   ##对脚本的描述信息

+++++++++++++++++++++++++++++++++非格式,用于分割++++++++++++++++++++++++++++++++++

#号开头为注释

read命令

1、查看所有内建命令
[[email protected] ~]# enable -a
enable .
...
enable read ##内建命令

2、获取帮助
[[email protected] ~]# 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、一行从标准输入读入后,切割此行成字段,对位保存字段至变量中

[[email protected] ~]# read name
hello obama!
[[email protected] ~]# echo $name
hello obama!
[[email protected] ~]# read name
obama
[[email protected] ~]# echo $name
obama

2、对位保存字段释义,如果多余的位,变量为空

[[email protected] ~]# read a b c
hello obama!
[[email protected] ~]# echo $a
hello
[[email protected] ~]# echo $b
obama!
[[email protected] ~]# echo $c

[[email protected] ~]#

3、等待用户输入命令

语法: read -p ‘PROMPT‘ name

相当于: echo -n "PROMPT" ; read name

[[email protected] ~]# printf "Enter a username: "; read name
Enter a username: obama
[[email protected] ~]# echo $name
obama
[[email protected] ~]#

4、避免用户不输入,堵塞在此处,给出超时。此时变量为空

[[email protected] ~]# read -t 5 -p ‘Enter a name: ‘ name
Enter a name: [[email protected] ~]# echo $name

[[email protected] ~]#

脚本示例:

提示用户输入一个设备文件,存在则显示磁盘信息。

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、检测语法错误

[[email protected] scripts]# bash -n test.sh

3、给x权限

[[email protected] scripts]# chmod +x test.sh

4、给一个路径测试

1、正确路径
[[email protected] 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、错误路径
[[email protected] scripts]# ./test.sh
Enter a disk special file: how
No such file.
[[email protected] scripts]# echo $?
1
[[email protected] scripts]#
时间: 2024-10-11 06:35:16

谢烟客---------Linux之bash脚本编程---用户交互的相关文章

谢烟客---------Linux之bash脚本编程---if补充和for循环

bash:过程式编程,为了完成更复杂的任务,支持顺序执行.选择执行.循环执行 顺序执行:从左而右,依次执行命令. 选择执行:依据condition(条件)的执行状态结果,选择执行不同的代码片段. 循环执行:依据condition(条件)的执行状态结果,决定是否进入循环. condition: ture: 表示条件状态结果为0 false: 表示条件执行状态结果非0 if 单分支.双分支.多分支.嵌套if语句 1.单分支结构 if condition; then     if-ture fi 2.

谢烟客---------Linux之bash脚本编程---选择执行

编程风格 过程式编程,目的解决问题 指令组织数据,指令的堆砌 为了完成复杂的任务 顺序执行:遍历的方式执行,逐个运行 选择执行:有一种选择标准,结果只能有一种选择,只执行某些 代码片段 循环执行:对一类对象逐个运行相同的运算,类似于 拉磨 的方式,某些代码连续执行多次 对象式编程: 数据为中心 程序执行的方式 编译:先翻译后执行,先将高级语言转换为目标代码:C,java程序 --> 编译 --> 目标代码 解释:边翻译边执行,为避免语法.逻辑等错误,一般先进行语法检查 Shell,java,p

bash脚本编程之用户交互

bash脚本编程之用户交互: read [option]... [name ...] -p 'PROMPT'    读取输入的内容 -t TIMEOUT    超时时间,如果超过了该时间,继续执行下面代码 bash -n /path/to/some_script 检测脚本中的语法错误 bash -x /path/to/some_script 调试执行 示例: 输入一个磁盘文件信息,使用fdisk -l显示该磁盘信息 #!/bin/bash read -p "Enter a disk specia

Linux系统裁剪之二(Bash脚本编程之十二)

Linux系统裁剪之二(Bash脚本编程之十二) 系统函数库 ·Linux系统的启动流程     1,POST(加电自检) 计算机本身并不会执行程序,它只是一堆破铜烂铁,但是它可以在开机的时候先去载入一段程序,系统在刚刚启动的时候能够实现将某个ROM芯片中的程序映射到CPU能够寻址的地址空间中去,并且让CPU能够执行其中的指令,这些指令大部分都是用来做系统检测的,当检测完成后,如果系统中所有的基本硬件和核心硬件都没有问题的话,接下来就会根据BIOS中设定的系统启动次序(Boot Sequence

Linux学习笔记--bash脚本编程之二、条件判断

 bash脚本编程之二.条件判断 条件判断: 如果用户不存在 添加用户,给密码并显示添加成功: 否则 显示用户已存在,没有添加 bash中如何实现条件判断? 整数测试 字符测试 文件测试 条件测试的表达式:     [expression]     [[expression]]     test expression 整数比较: -eq:测试两个整数是否相等:比如 $A -eq $B     -ne:测试两个整数是否不等:不等,为真:相等,为假:     -qt:测试一个数是否大于另一个数:大于

Linux命令:bash脚本编程

bash脚本编程简介: 此文假定你没有任何关于脚本或一般程序的编程知识, 但是如果你具备相关的知识, 那么你将很容易就能够达到中高级的水平. . . 你可以把此文作为参考, 自学手册, 或者是关于shell脚本技术的文档. 介绍内容包括: A:变量.变量类型 B:条件判断 C:算术运算 D: E: F: G: A.bash变量类型: 1)本地变量:(局部变量) set VARNAME=VALUE: 作用域为整个bash进程: 2)局部变量: local VARNAME=VALUE:作用域为当前代

Linux学习笔记--bash脚本编程之一变量、变量类型

bash脚本编程之一变量.变量类型 shell编程: 编译器,解释器 编程语言:机器语言.汇编语言.高级语言 静态语言:编译型语言 强类型(变量)语言 事先转换成可执行格式 C.C++.JAVA.C# 动态语言:解释型语言       on the fiy                                   弱类型 边解释边执行 ASP.ASP.net.PHP.shell.Python.perl 面向过程:shell.C   面向对象:JAVA.Python .Perl.C++

bash脚本编程基础

bash编程   bash脚本编程是过程式解释编程,其实就是linux命令的堆砌,既然是编程就应该有相应编程语法.    与任何过程式编程一样,过程式编程的特点就是:顺序执行,选择执行,循环执行.    过程式编程:以指令为中心,设计算法,数据服务于算法,过程式编程的灵魂:算法.    1.变量:数值变量,字符变量           bash环境:                本地变量:当前shell进程:                环境变量:当前shell进程及其子进程:       

压缩工具及bash脚本编程

回顾: RAID: 不同的服务器配置起来他的借口可能配置起来有所不同,但是官方一般都提供响应的说明书,按照说明书进行配置就行.关键是理解RAID级别的机制的意义是什么 LVM: 其实是一个逻辑设备他存在的主要作用是提供卷管理操作,我们称之为"volume", 卷管理操作的目的主要是实现把一个或多个底层的物理设备给组织成一个逻辑设备,我们可以将底层的任何类型的块设备,包括我们常见的基本磁盘分区,或者甚至是RAID都OK,只要他们提供块级别的存储空间,但是考虑到任何单个硬件设备他们的边界都