#!/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当中脚本
shell编程笔记
最新推荐文章于 2024-05-06 11:50:38 发布