变量与解释器
#!/bin/sh
name='zhaoyan'
echo ${name}
for file in "zuo" "hong" "fei";
do
echo ${file}
done
echo ${file}
readonly file
file="new file"
echo ${file}
unset file
echo ${file}
new_file="new_file"
echo ${new_file}
unset new_file
echo ${new_file}
new_file="zhao"
echo ${new_file}
shared=zhaoyan
function test(){
fun_shared=zuo
echo "shared:"${shared}
}
echo "test执行之前 fun_share:"${fun_shared}
test
echo "test执行之后 fun_share:"${fun_shared}
function test() {
local shared=zuo
echo "shared:"${shared}
}
test
字符串与数组
#!/bin/sh
var="zhaoyan"
var_a='zuo'
echo ${var} ${var_a}
var_b='${var_a}'
echo ${var_b}
echo ${#var_b}
array=("zhao" "yan" hh)
echo ${array}
echo ${array[3]}
array[12]=yy
echo ${array[12]}
array=12
echo ${array[2]}
for item in ${array}
do
echo $item
done
length=${#array[@]}
echo $length
length=${#array[*]}
echo $length
a="ashibushi"
echo ${a[2]}
a[1]="as1231"
echo ${a[1]}
echo $a
echo "bianli:"
for item in ${a}
do
echo ${item}
done
关系运算符
echo $0
echo '$@:' $@
echo '$*' $*
a=1
b=2
sum=`expr ${a} + ${b}`
echo $sum
mult=`expr ${a} \* ${b}`
echo $mult
c=1
if [ $a == $c ]
then
echo "相等"
fi
left=10
right=12
if [ $left -eq $right ]
then
echo "equal"
elif [ $left -gt $right ]
then
echo "great than"
else
echo "less than"
fi
newa=1
newb=""
if [[ $newa && $newb ]]
then
echo "a不是空字符串"
else
echo "a"
fi
if [[ $newa || $newb ]]
then
echo "a不是空字符串"
else
echo "a"
fi
newc=""
newc=dsfsd
if [ $newc="dsfsd" ]
then
echo "空串"
else
echo "非空串"
fi
函数
function a() {
echo "a()"
}
a
function a(){
echo "返回值"
b=12
return 12
}
a
echo "a 函数的 返回值 :$?"
funWithParam(){
echo "第一个参数为 $1 !"
echo "第二个参数为 $2 !"
echo "第十个参数为 ${10} !"
echo "第十一个参数为 ${11} !"
echo "参数总数有 $# 个!"
echo "作为一个字符串输出所有参数 $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73
字符串替换
echo $BASH_SOURCE
file="/Users/zhaoyan/flutter/flutter/bin/flutter"
echo ${file#*/}
echo ${file##*/}
echo ${file%/*}
echo ${file%%/*}
echo ${file:0:5}
echo ${file/flutter/xxx}
echo ${file//flutter/xxx}
Liunx 命令
1. set 命令、env命令、export命令
set 命令:
显示shell的所有变量(环境变量、自定义变量、bash内置变量)
env命令:
显示当前用户的环境变量