1.变量定义及引用:
定义:
a=1
b=hello
c="hello from testerhome"
d=ls
(反引号)
引用:
echo $a 输出:1
echo $b 输出:hello
echo $c 输出:hello from testerhome
echo "this is $a" 输出:this is 1
ehco 'this is $a' 输出:this is $a
echo $a_1 输出:空
ehco $a _1 输出:1 _1
echo ${a}_1 输出:1_1
echo $d 输出:执行 ls 命令
2.预定义变量
pwd
打印当前目录:/home/17329528
echo $PWD
打印当前目录: /home/17329528
echo $USER
打印当前用户名:17160144
echo $HOME
打印当前用户的根目录
echo $PATH
打印环境变量
which python(which 命令是在当前目录和环境变量里面找对应文件)
打印 python 路径
export PATH=$PATH:$PWD
把当前路径加入环境变量
chmod +xwr long.sh
给 long.sh 加执行,读写权限
chmod -xwr long.sh
给 long.sh 去除执行,读写权限
cd 命令:
cd 目录
进入指定目录
cd ..
进入上级目录
cd
进入最外层目录
3.数组变量
定义:
array=[1 2 3 4 5]
conan=ls
homles=(ls
)
引用:
echo ${array[]}
打印:1 2 3 4 5
echo ${array[@]}
打印:1 2 3 4 5
echo ${#array[]}
打印数组长度:5
echo ${array[0]}
打印第一个元素:1
echo ${array[-1]}
打印最后一个元素:5
echo $conan
执行 ls 命令并打印
echo ${homles[]}
执行 ls 命令,并把文件当初元素赋给数组 homles
for i in "${array[@]}";do echo $i;done
@ 加双引号,当数组当数组处理
for i in "${array[]}";do echo $i;done
* 加双引号,把数组当字符串处理
4.特殊符号使用
\n 换行符
echo "a\nbb"
打印 a\nbb
echo -e "a\nbb"
打印:
a
bb
-e 是扩展表达式,支持转义字符
\b 删除前一个字符
echo -e "a\bb"
打印:b
(()) 双括号的使用:
a=1,b=3,c=3;echo $((a+b/c))
进行运算打印出:2
a=1,b=3,c=3;((a>c));echo $?
进行比较运算打印出:1(bash 里 0 为 ture,其它均为 false)
seq 1 10:定义 1 到 10 的整数
array=(seq 1 10
)
echo ${array[*]}
打印:1 2 3 4 5 6 7 8 9 10
5.运算
定义:
a=1
加运算:
((a+1))a 仍为 1
((a=a+1))a 变为 2
((a=a+3))a 变为 5
((a++))a 自增 1,变为 6
echo $((a+2)) 输出 8,a 值仍为 6
减,乘运算:
同加运算
除运算:不支持结果为浮点数,只取整数部分显示