在 Linux 中,echo 命令用于输出文本信息到终端或者重定向到文件。 -e 是 echo 命令的一个选项,用于启用特殊字符的解释。如果不使用 -e 则会按照普通字符串输出,而不会解释诸如 \n、\t 等转义字符。
变量定义和引用
普通变量 当前shell进程
环境变量 当前shell进程以及子进程
export name=VALUE
declare -x name=VALUE
name=VALUE
export name
本地变量 当前shell进程中某代码片段,通常指函数。
变量赋值:
直接字串:name='root'
变量引用:name="$USER"
命令应用:name=`COMMAND` 或者 name=$(COMMAND)
变量引用:$name、${name}
变量追加值
TITLE=CTO
TITLE+=:wang
echo $TITLE CTO:wang
利用变量实现动态命令
CMD=hostname
$CMD
ubuntu
删除变量
NAME=root
unset NAME
位置变量
$1 $2 $3 对应第一个参数 第二个参数
$0 命令本身,包括路径
$* 全部参数 合为一个字符串
$@ 全部参数 每个参数为独立字符串
$# 传递给脚本的参数个数
shell中` `和$()都可以执行命令,推荐使用$()。
shell运算推荐
方法一、a=$[$b+$c]
方法二、let a = $b+$c
方法三、a=$(($b+$c))
shell数值判断
[ $i -lt $j ] 推荐写法
[[ $i -lt $j ]]当使用正则表达式或者通配符推荐使用
-eq 是否等于
-ne 是否不等于
-gt 是否大于
-ge 是否大于等于
-lt 是否小于
-le 是否小于等于
文件测试
-a FILE #如果文件存在则为真
-d FILE #如果文件为目录则为真
-e FILE #如果文件存在则为真
-f FILE #如果文件存在且为常规文件则为真
关于()和 {} 都可以将多个命令组合在一起
()开启子shell
{} 不开启子shell
组合测试条件 [ ]
[ 条件1 -a 条件2 ] 并且
[ 条件2 -o 条件2 ] 或者
[ !条件 ] 取反
条件判断
if 判断条件
then
echo "1221212121"
fi
if 条件判断
then
echo "121212"
else
echo "2121"
fi
if 判断条件
then
echo "2121"
elif 判断条件
then
echo "21212"
else
echo "123232"
fi
case 变量引用 in
part1)
echo "2121"
;;
part2)
echo "2132"
;;
part3)
echo "2131"
;;
*)
echo "32131"
;;
esac
for i in {1..100}
do
echo "212132"
done
for((i=0;i<=10;i++))
do
echo "21321"
done
while (条件判断)
do
echo "132"
done
util (条件判断)
do
echo "31231"
done
shell与正则
=~ 判断是否与正在匹配
数组