shell脚本编写入门

chmod +x test.sh 给脚本授权

#!/bin/bash

#接受命令行参数
#第一个参数为脚本文件名本身
#从第二个参数之后也就是$1之后的参数才是用户输入的参数
echo "First $0"
echo "Second $1"
echo "Third $2"
echo "Hello world!"

your_name="qinjx"
echo $your_name


for skill in ada coffe action java;do
   echo "I am good at ${skill} script"
done

#定义只读变量
myUrl="http://www.chongfer.cn/"
readonly myUrl

#删除变量
unset var

#字符串可以用双引号、单引号或者不用引号
#双引号中可以有变量和转椅字符

#拼接字符
your_name="qinjx"
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1


#获取字符长度
string="abcd"
echo ${#string}


#提取子字符串
string="runoob is a great site"
echo ${string:1:4} # 输出 unoo


#查找子字符串
string="runoob is a great company"
echo `expr index "$string" is`  # 输出 8
#注意: 以上脚本中 "`" 是反引号,而不是单引号 "'",不要看错了哦。


#定义数组 与C语言差不多,数组元素要以空格隔开
#访问数组
array_name=(name0 name1 name2)
echo ${array_name[1]}


#获得数组元素的个数
length=${#array_name[@]}
#或者
length=${#array_name[*]}

#!/bin/bash
#算术运算符要有空格,并被`包围
#条件表达式要放在方括号之间,并且要有空格
a=10
b=20


val=`expr $a + $b`
echo "a + b:$val"


val=`expr $a - $b`
echo "a - b:$val"


#乘法要用\
val=`expr $a \* $b`
echo "a * b:$val"


val=`expr $a / $b`
echo "a / b:$val"


#if与[之间要有空格,各部分之间都要有空格
if [ $a == $b ]
then
	echo "a等于b"
fi


if [ $a != $b ]
then 
	echo "a不等于b"
fi


#关系运算符
# -eq 等于
# -ne 不等于
# -gt 大于
# -lt 小于
# -ge 大于或等于
# -le 小于或等于


#逻辑运算符
# && ||
if [ $a -le $b ]
then
   echo "a小于等于b"
fi


#字符串运算符
# =
# !=
# -z 检测字符串长度是否为0,为0返回true
# -n 检测字符串长度是否为0,为0返回false
a="abc"
if [ -z $a ]
then 
	echo "a的长度为0"
fi


if [ -n $a ]
then 
	echo "a的长度不为0"
fi


#文件测试运算符
# -d 检测文件是否是目录,如果是,则返回true
# -f 是否是文件
# -r 是否可读
# -w 是否可写
# -x 是否可执行
# -e 检测文件或目录是否存在
# -s 检测文件是否为空

printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg
printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234
printf "%-10s %-8s %-4.2f\n" 杨过 男 48.6545


# %s %c %d %f都是格式替换符




# shell的test命令用于检查某个条件是否成立,它可以进行数值、>字符、文件三个方面的测试
num1=100
num2=100
if test $[num1] -eq [num2]
then
    echo "两个相等"
else
    echo "两个数不相等"
fi


# shell的流程不能为空,如果else不进行任何操作就不要写else
# if then fi
# if then else fi
# if then elif then else fi




#for循环语句
for loop in 1 2 3 4 5
do
  echo "The value is: $loop"
done
#while 循环语句


int=1
while(( $int<=5))
do
 echo $int
 let "int++"
done


#until循环
# until condition
# do
#    command
# done


#case
echo '输入 1 到 4 之间的数字'
echo '你输入的数字为:'
read aNum
case $aNum in
1) echo '你选择了1'
;;
2) echo '你选择了2'
;;
3) echo '你选择了3'
;;
4) echo '你选择了4'
;;
*) echo '你没有输入1到4之间的数字'
;;
esac
#esac(把case返回来)作为case的结束标志


#跳出循环可用break continue






#shell函数


demoFun()
{
echo "这是我第一个shell函数"
}


echo "***函数开始执行***"
demoFun
echo "***函数执行完毕***"


funWithReturn(){
    echo "这个函数会对输入的两个数字进行相加运算..."
    echo "输入第一个数字: "
    read aNum
    echo "输入第二个数字: "
    read anotherNum
    echo "两个数字分别为 $aNum 和 $anotherNum !"
    return $(($aNum+$anotherNum))
}
funWithReturn
echo "输入的两个数字之和为 $? !"
funWithParam()
{
 echo "第一个参数为 $1"
 echo "第二个参数为 $2"
 echo "参数总数有 $# 个!"
 echo "作为一个字符串输出所有参数 $* !"


}


funWithParam 1 2 3 4 5 5
#注意,$10不能取第十个参数,当n>=10时 要用$(n)来获取参数
#" $#" 传递到脚本的参数个数
#" $*" 以一个单字符串显示所有向脚本传递的参数
#" $$" 脚本运行的当前进程ID号

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值