一、练习
写一个脚本,脚本功能为提示用户键入一个磁盘设备路径,根据用户输入的磁盘设备路径来查看这个磁盘设备已有的分区信息,脚本其它内容自定义?
[root@wybaron_host1015 ~]# vim script/read_TEST.sh
#!/bin/bash
#
#
read -t 5 -p '请输入一个磁盘设备路径:' dev_disk
if [ -n $dev_disk ] ;then
if [ -b $dev_disk ];then
fdisk -l $dev_disk
else
echo "请输入一个块设备文件的路径!"
exit 3
fi
else
echo "用法格式:# bash $0 DEV_PATH"
exit 2
fi
~
[root@wybaron_host1015 ~]# bash -n script/read_TEST.sh
[root@wybaron_host1015 ~]# bash script/read_TEST.sh
请输入一个磁盘设备路径:用法格式:# bash script/read_TEST.sh DEV_PATH
[root@wybaron_host1015 ~]# bash script/read_TEST.sh
请输入一个磁盘设备路径:/etc
请输入一个块设备文件的路径!
[root@wybaron_host1015 ~]# bash script/read_TEST.sh
请输入一个磁盘设备路径:/dev/sdb
磁盘 /dev/sdb:32.2 GB, 32212254720 字节,62914560 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xc329d258
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41945087 20971520 83 Linux
/dev/sdb2 41945088 52430847 5242880 83 Linux
二、补充
常用字符串比较形式
if [ $string1 == $string2 ] 如果字符串相等则为真。= 可以用于使用 == 的场合来兼容 POSIX 规范
if [ $string1 != $string2] 如果string1不等于string2,则为真
if [ -n $string ] 如果 string 的长度非 0 则为真
if [ -z $string ] 如果 string 的长度为 0 则为真
if [ $sting ] 如果string 非空,返回0 (和 -n 类似)
if [ string1 < string2 ] 如果 string1 在当前语言环境的字典顺序中排在 string2 之前则为真
if [ string1 > string2 ] 如果 string1 在当前语言环境的字典顺序中排在 string2 之后则为真
bash脚本执行前
# 检测脚本中的语法错误
~]# bash -n /PATH/TO/SCRIPT_NAME
# 调试执行脚本(多用于错误和流程检测)
~]# bash -x /PATH/TO/SCRIPT_NAME
# 执行脚本
~]# bash /PATH/TO/SCRIPT_NAME