shell脚本语法

#!/bin/bash 声明脚本使用的shell名称
# 注释
PATH=/bin:/sbin:/usr/bin:/usr/sbin
export PATH    声明环境变量

交互式脚本
read -p "Please input your first name: " firstname  #提示用户输入
echo -e "\nYour first name is: $firstname"   #输出结果

创建一个带日期的文件
read -p "input your filename: " fieuser    #提示用户输入
filename=${fileuser:-"filename"}  #判断是否输入文件名
date=$(date +%Y%m%d)   #今天的日期
file=${filename}${date}   #组成文件名
touch "$file"      #创建文件

数值运算
read -p "first nu: " firstnu
read -p "second nu " secnu
total=$($firstnu * $secnu)

关于文件名的文件类型判断 test -e filename 表示是否存在
-e  文件是否存在
-f  文件名是否存在且为文件  
-d  文件名是否存在且为目录
-b  文件名是否存在且为block device设备
-c  文件名是否存在且为character device设备
-S  文件名是否存在且为Socket文件
-p  文件名是否存在且为FIFO(pipe)文件
-L  文件名是否存在且为连接文件

关于文件的权限检测, 如test -r filename 是否可读
-r  文件名是否存在且可读
-w  文件名是否存在且可写
-x  文件名是否存在且可执行
-u  文件名是否存在且有 SUID的属性
-g  文件名是否存在且有 SGID的属性
-k  文件名是否存在且有 Sticky bit的属性
-s  文件名是否存在且为非空白文件

两个文件之间的比较, 如:test file1 -nt file2
-nt file1是否比file2新
-ot file1是否比file2旧
-et 判断file1与file2是否为同一个文件,可用在判断硬链接上

关于两个整数之间的判断,如test n1 -eq n2
-eq 相等
-ne 不等
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于

判定字符串数据
test -z string  字符串为空时,为true
test -n string  字符串为空时,为false
test str1 = str2    若相等,则为true
test str1 != str2  若不相等,则为true

多重条件判定,例如:test -r filename -a -x filename
-a  两个条件同时成立时,则为true
-o  任何一个条件成立时,则为true
!  反向状态,如test ! -x file,file不是可执行文件时,为true

[  ]  条件判断符号

shell脚本默认变量
$0  shell脚本文件名, $1 $2..,shell脚本后跟的参数
$#  后接参数个数
$@  代表"$1" "$2" "$3
$*  代表"$1c$2c$3c$4",其中c为分隔符,默认为空格

shift:造成参数变量号码偏移

条件判断
if [ 条件判断式 ]; then
    当前条件成立时,可进行的命令
fi
&&代表AND
||代表or

多重复杂条件判断
if [ 条件判断式一 ]; then
    当前条件成立时,可进行的命令
elif [ 条件判断式二 ]; then
    当前条件成立时,可进行的命令
else
    前面条件都不成立时,可执行的命令
if

case $变量名称 in   <==关键字为case,还有变量前有$
    "第一个变量内容")
     程序段
     ;;
    "第二个变量内容")
     程序段
     ;;
    *)
     程序段
     ;;
esac

while [ condition ] <==中括号内的状态就是判断式
do      <==do 是循环的开始
    程序段落
done    <==done 是循环的结束
当condition条件成立时,就进行循环


until [ condition ]
do
    程序段落
done
当condition条件成立时,就终止循环

for...do...done固定循环
for var in con1 con2 con3 ...
do
    程序段
done
for...do...done的数值处理
for (( 初始值; 限制值; 执行步长 ))
do
    程序段
done

shell脚本的追踪与调试
sh [ -nvx ] scrips.sh
-n : 不要执行script,仅查询语法的问题;
-v : 在执行script前,先将script的内容输出到屏幕上;
-x : 在执行过程中,将使用到的script内容显示到屏幕上。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值