shell编程笔记

#!/bin/bash
echo "hello shell"
a=20
b=20
echo "$a"

if [ $a != $b ];
then
echo "a is not equals to b"
fi

if [ $a = $b ];
then
echo "a is equals to b"
fi

for skill in micro learn unix shell
do
echo "Hello this is for block code..elment $skill"
done

myname="micro"
echo ${myname}
### 测试只读
myname2="micro2"
readonly myname2
echo ${myname2}
###myname2="micro3" throw exception..

myname3="micro3"
echo "${myname3}"
echo "unset myname3..."
unset myname3
echo ${myname3}

## 参数
echo "File Name : $0"
echo "First Parameter : $1"
echo "Third Parameter : $2"
echo "All Parameter : $@"
echo "All Values : $*"
echo "Total Parameter Numbser : $#"

###替换转义
a=1
echo "this is a value ${a} \n"
##替换
echo -e "this is a value ${a} \n"

##运算符
val='expr $a + $b'
##运算符之间要加空格,加减乘除 + - * /  取余%
###关系运算符
if [ $a -eq $b]
then
 echo "a is equals to b"
else
 echo "b is not equals to b"
fi
###一些常见的运算符 -eq -ne -gt -lt -ge -le
##布尔运算 !  -o为或 -a为并

##字符串运算  = 为是否相等,  != 为是否不相等  -z 是否长度为0  -n 是否长度不为0  str 检测是否不为空

##检测文件相关属性
file="/var/myfile.sh"
if [ -r $file]
then
 echo "File has read access"
else
 echo "File does not have read access"
fi

#还有一些其他的判断  -w 是否有写权限  -x 是否可执行 -f 是否是一个文件  -d是否是个文件夹 -s文件尺寸是否为0  -e文件是否存在

#-------字符串处理
#拼接字符串
val="testValue"
echo "this is a %{val}"
##获取字符串长度 采用#
echo ${#val}
##截取字符串
echo ${val : 1 : 2} ##取出a
#查找字符串索引
echo 'expr index ${val} a'


## ----数组
array=(1,2,3,4)
#或者
array[0]=1
array[1]=2
#读取
${array[0]}
#获取数组长度
${#array[*]}


##输出指令 echo  或者 printf
printf "%s test" a ##printf 字符串 参数 与C语言类似

###if-else 语句有三种   if .. fi   if..else..fi   if...elif..else..fi

###case多分支
case a in
1) echo "a is 1"
;;
2) echo "a is 2"
;;
esac

### for语句
for a in a b c d
do
   echo ${a}
done


##while
a=10
while [a -gt 1]
do
    echo "a"
    a='expr ${a} - 1'
done
##until 语句
until [a -lt 1]
 echo "a"
done
##break命令跳出循环
while
do
    echo "select one number"
    read aNum
    case $aNum in
        1|2|3|4) echo "selct ${aNum}"
        ;;
        *) break
    esac
done

##continue类似


###---shell函数
Hello() {
    echo "define a function hello"
}
##./test.sh 这样执行

##如果你希望直接从终端调用函数,可以将函数定义在主目录下的 .profile 文件,这样每次登录后,在命令提示符后面输入函数名字就可以立即调用。

##函数参数
getPrint() {
    echo "params1 $1"
    echo "params2 $2"
}
##当参数>=10 要 花括号 ${10}
getPrint 1 2

##将外部脚本合并到当前脚本 .filename   source filename 两种方式效果相同
#!/bin/bash
../test.sh
echo ${a} ##a为test.sh当中脚本
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值