定义变量 | a=10 |
引用变量/数组 可以使用大括号,多数时候大括号可以省略,在需要结合下标引用数组时大括号不可以省略掉 | a/a/a/{a} |
打印变量 | echo $a |
使用echo引用变量打印时,如果加单引号则不会引用变量 | echo $a --> 10,echo ‘$a’ --> $a,echo “”$a"" --> 10 |
使用echo打印时,如果加反引号则表示执行反引号里的命令,输出命令调用的结果 | echo `whoami` —> username |
特殊值值 | $0 —> 表示当前文件名、$1 —> 表示第一个参数、$n —> 表示第n个参数、@/@/@/* —> 表示所有参数、KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲ ---> 表示参数数量、? —> 表示脚本执行的结果 0是正常执行 其他是执行异常" |
执行小括号里的命令,同时打印命令执行结果 | echo(cmd)、echo(whoami) —> username |
计算1+1的结果 | $((1+1)) |
定义环境变量x 临时有效,若想一直生效需要在~/.vimrc里添加" | export x=www |
读取用户输入的内容,赋值给变量a(可不赋值) | read -p ‘请输入内容’ a |
if判断语句,fi结尾,cmd命令执行成功打印1,否则打印2
if cmd;then
echo '1'
else
echo '2'
fi
数值之间的比较
大于:gt 小于:lt
大于或等于:ge
小于或等于:le
等于:eq 不等于:ne
判断5是否大于7,是则打印1,否则打印2
if [ 5 gt 7 ]
then
echo '1'
else
echo '2'
fi
判断字符串a是否与字符串b相同,是则打印1,否则打印2
也可判断是否不等于!= " "if [ $a = $b ]
then
echo '1'
else
echo '2'
fi
判断字符串a是否大于字符串b,计算规则与Python一致,大于则打印1,否则打印2
if [[ $a>$b ]]
then
echo '1'
else
echo '2'
fi
接收用户输入内容,输入内容1则打印a,。输入2则打印b,输入3则打印c
case开始,esac结束
read -p '请输入内容' a
case $a in
1)
echo 'a'
;;
2)
echo 'b'
;;
3)
echo 'c'
;;
*)
echo '输入的操作错误'
;;
esac
遍历1-10,赋值i打印i
for 开始 do 执行操作 done结束
for i in `seq 1 10`
do
echo $i
done
C语言风格的for循环
取值区间是0-10 每次运行j++是j+1,打印j
for((j=0;j<=10;j++))
do
echo $j
done
定义函数foo,function可以省略
function foo()
foo(){
echo 'foo里的$0':$0
echo 'foo里的$1':$1
echo 'foo里的$@':$@
echo 'foo里的$#':$#
}
调用函数foo,传入参数六个分别是:a b c d e f | foo a b c d e f |
数组的定义 | names=(hello 2 5 ) |
默认取数组names的第一个值 | echo $names —> hello |
取数组names第一个值之后打印[2] | echo $names[3] —> hello[3] |
取出数组下标2对应的值 | echo ${names[3]} —> gun |
获取数组里所有的值,可以使用@/* | echo ${names[*]} —> hello 2 5 |
获取数组里值的数量 | echo ${names[#]} —> 2 |
遍历数组里的值打印
for i in ${names[@]}
do
echo $i
done
C语言风格的for循环,取值区间是0-数组names的长度
打印下标和下标对应的内容
for((i=0;i<${#names[@]};i++))
do
echo 下标:i,内容:${names[i]}
done