shell学习记录

记录学习shell中的基础语法

test.sh

#!/bin/bash

echo "start excule sh"

echo "第一个块"

cd /home
sleep 1

:<<EOF
⽂件⽐较符
-e 判断对象是否存在
-d 判断对象是否存在,并且为⽬录
-f 判断对象是否存在,并且为常规⽂件
-L 判断对象是否存在,并且为符号链接
-h 判断对象是否存在,并且为软链接
-s 判断对象是否存在,并且长度不为0
-r 判断对象是否存在,并且可读
-w 判断对象是否存在,并且可写
-x 判断对象是否存在,并且可执⾏
-O 判断对象是否存在,并且属于当前⽤户
-G 判断对象是否存在,并且属于当前⽤户组
-nt 判断file1是否⽐file2新  [ "/data/file1" -nt "/data/file2" ]
-ot 判断file1是否⽐file2旧  [ "/data/file1" -ot "/data/file2"
EOF


if [ ! -d "/home/test_shell" ]
then
  mkdir "test_shell"
else
  cd test_shell
  for (( i = 0; i < 5; i++ )); do
    touch test_$i.txt
done

fi

echo "第二个块"

# 定义变量时,变量名不加美元符号,变量名和等号之间不能有空格
a=1
b=2
c=3
d="12345"
# 删除
unset a
# 变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界
echo "1删除后b的值是:$a"
echo "2删除后b的值是:${a}"

# 只读变量
readonly b

# 字符串长度
echo "d的长度是:${#d}"

# 字符串切片
echo "切片后的字符是:${d:2:3}"

:<<EOF
qweqwe
qweqwe
qweqwe
qweqwe
EOF


echo "第三个块"

# 数组 #

# 在 Shell 中,用括号来表示数组,数组元素用"空格"符号分割开。

array1=(1 2 3 4)

array2=("a" "b" "c" "d")

array1[4]=5

# 读取数组
echo "读取数组1的数据:${array1[0]}"

#使用 @ 符号可以获取数组中的所有元素
echo "数组2的所有数据是:${array2[@]}"

# 取得数组元素的个数
echo "数组1的长度是:${#array1[@]}"



echo "第四个块"

:<<EOF
字符串测试
参数	说明
=	等于则为真
!=	不相等则为真
-z 字符串	字符串的长度为零则为真
-n 字符串	字符串的长度不为零则为真
EOF

a=7

if [ a > 5 ]
then
  echo "a大于5"
elif [ a < 5 ]
 then
    echo "a小于5"
else
  echo "没有符合条件的"
fi


num1=$[2+2]
num2=$[2*2]
if test $num1 -eq $num2
then
  echo "num1==num2"
else
  echo "num1!=num2"
fi


for i in array1
 do
   echo "value is ${i}"
done


case 5 in
1)
  echo "进入模式1"
  ;;
2)
  echo "进入模式2"
  ;;
3)
  echo "进入模式3"
  ;;
4)
  echo "进入模式4"
  ;;
5)
  echo "进入模式5"
  ;;
*)
  echo "没有进入模式"
  ;;
esac


demoFunc(){
  echo "this is a function"
}

echo "____开始执行函数______"
demoFunc


demoFunc2(){
  # 返回数据
  echo "传入参数长度: $#"
  echo "输出所有参数:$*"
  echo "输出第一个参数: $1"
  return $1
}

demoFunc2 1 2 3 4 5 6



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值