#!/bin/bash
#第一行固定写法指定用什么运行
a=变量a #变量声明和赋值
a="变量a"
a='变量a'
echo $a #echo是打印输出
for skill in A B
do #for in do遍历
echo "I am good at ${skill}Script"
done
readonly a
a=变量b #readonly不能改值
echo "只读的修改后 $a"
b=变量b
unset b #unset删除变量
echo "b被删除后 $b" #删除后打印为空
#字符串
str="abcdefg"
echo "str长度为${#str}" ##获取长度
echo "截取${str:1:2}" #截取包括头尾序号从0
#数组
arr=(a1 a2 a3 a4) #数组声明
echo ${arr[1]} #数组打印
echo ${arr[2]}
echo ${arr[@]} #@打印所有元素
echo ${#arr[@]} #数组长度
#传入参数
echo "第0个参数 $0" #第0个参数是执行的当前文件名
echo "第1个参数 $1" #第1个之后的都是传入的参数
echo "参数个数为:$#"; #$#参数个数
echo "参数作为一个字符串显示$*" #所有参数全部打印
echo "参数作为一个数组显示$@" #所有参数转为数组显示
#运算符
c=`expr 2 + 2 - 2 \* 2 / 1 % 1` #必须用空格隔开加号和数字*需要转译
echo $c
d=`expr 2 == 2`
echo $d
#关系比较
if [ 2 -eq 2 ] #注意这里四个空格 和if then else fi的用法
then #eq是相等ne不等gt大于lt小于ge大于等于le小于等于
echo "2==2"
else
echo "2!=2"
fi
if [ 3 -eq 2 -o 2 -eq 2 ] #if中的活运算是 -o 与运算 -a 或者 [[3 -eq 2 || 2 -eq 2]] 注意这里的是双括号
then
echo "2==2"
else
echo "2!=2"
fi
if [[ 3 -eq 2 || 2 -eq 2 ]] #if中的活运算是 -o 与运算 -a 或者 [[3 -eq 2 || 2 -eq 2]] 注意这里的是双括号
then
echo "2==2"
else
echo "2!=2"
fi
#字符串比较
a="abc"
b="efg"
if [ $a = $b ]
then
echo "$a = $b : a 等于 b"
else
echo "$a = $b: a 不等于 b"
fi
if [ $a != $b ]
then
echo "$a != $b : a 不等于 b"
else
echo "$a != $b: a 等于 b"
fi
if [ -z $a ]
then
echo "-z $a : 字符串长度为 0"
else
echo "-z $a : 字符串长度不为 0"
fi
if [ -n $a ]
then
echo "-n $a : 字符串长度不为 0"
else
echo "-n $a : 字符串长度为 0"
fi
if [ $a ]
then
echo "$a : 字符串不为空"
else
echo "$a : 字符串为空"
fi
echo `date`
#while循环写法while 双括号空格隔开 do done
i=3
while (( $i>=2 ))
do
echo $i
let "i--"
done
#函数
myfunc(){
echo "myfunc"
echo "函数第一个传入参数$1"
}
myfunc hehe
shell基础
最新推荐文章于 2025-05-31 23:32:52 发布