学习Shell脚本

学习shell脚本

Shell 脚本其实就是纯文本文件( ASCII , 当要编辑文件的内容是时就要具备 bash shell 命令的相关知识了。在前面已经提过 bash 了, shell 脚本的编写同样需要用到这些注意事项:
@ 如同前面所提到的一样,命令与参数间的多个空白会被忽略。
@ 空白行与 [Tab] 也被忽略
@ 如果读取到一个 Enter 符( CR ),就尝试开始执行该命令
@ 如果一行太多,可以使用 \[Enter] 来扩展下一行
@ 此外, # 可作为注释。任何加在 # 后面的内容都被视为注释不被显示出来
  我们在编写脚本的同时也要养成可良好的习惯,如果程序说明能够更清楚,那么对我们的帮助是很大的,因此我们在每个脚本的文件头处记录好:脚本的功能;脚本的版本信息;历史记录;特殊声明等等。。
善用判断条件
使用 text 命令的测试功能,要检测系统某些文件或相关属性时,使用 text 命令就行了。比如说,要检查 /dntsai 是否存在,使用 text �Ce /dmtsai  .-e 是老测试一个东西是个否存在。接下来我们来看看哪些标志可以用来判断。我们来制作成表格的形式:
某个文件名的“类型”检测(是否存在),
-e
该“文件名”是否存在
-f
该“文件名”是否为文件
-d
该“文件名“是否为目录
-c
……         是否为字符设备
-b
            是否是块设备
-S
………… 是否为套接字文件
-P
          是否为管道文件
-L
该“文件名”是否为一个链接文件
文件的权限检测,
-r
检测该文件是否为“可读”属性
-w
检测该文件是否为“可写”属性
-x
检测该文件是否为“可执行”属性
-u
检测该文件是否为“ SUID” 属性
-g
检测该文件是否为“ SGID” 属性
-k
检测该文件是否具有“ Sticky bit ”属性
-s
检测该文件是否为“非空白文件
比较两个文件,如 text file1 �Cnt file2
-nt
判断 file1 是否比 file2
-ot
判断 file1 是否比 file2
-ef
判断 file1 file2 是否为同一个文件,可用于判断硬连接,主要判断文件是否均指同一个 indoe
判断整数之间的判断,
-eq
两数值相等
-ne
两数值不等
-gt
大于 n1 �Cgt n2 n1 大雨 n2
-lt
小于
-ge
大于等于
-le
小于等于
多重判断条件,如 text �Cr filename �Ca �Cx filename
-a
and )两个条件同时成立,如例子 file r x 权限时,才回传 true
-o
or )两个条件任何一个有就成立
!
条件求反,如 text ! �Cx file , file 不具有 x 权限时,回传 true
使用判断符号 [ ]
除了 text ,还可以使用判断符号 [ ] 来进行数据的判断。需要注意:
l  中括号 [ ] 内的每一个组件都需要用空格来分隔
l  中括号内的变量,最好用双引号来设置
l  中括号的常量,最好用单引号或者双引号来设置
条件判断
使用 if then
If [ 条件判断表达式 ] then
当条件表达式成立时,可以执行的命令
fi
l  && 表示 AND
l  || 表示 or
If [ 条件判断表达式 ] then
   条件判断是成立时,可以执行的命令
else
   条件判断表达式不成立时,可以执行的命令
fi
更复杂的情况:
If [ 条件判断表达式一 ] then
   当条件表达式一成立,可以执行命令
elif 条件表达式二】; then
当二成立时,可以执行的命令
else
当一二不成立的时候,可以执行的命令
       fi
使用 case …… esac 判断
Case  $ 变量名称 in
“第一个变量内容“
程序段
;;
“第二个变量内容“
程序段
;;
*
不包含第一个变量与第二个变量内容的其他程序执行段
exit 1
;;
esac
循环
While do done until do done
While [ condition ]
do
  程序段落
done
 
until [ condition ]
do
  程序段落
done
 
 
 

你可能感兴趣的:(shell,脚本,学习,职场,休闲)