1.shell脚本中变量的含义
$0:正在执行的程序的名称
$1:执行脚本后输入的第一个参数
$2:执行脚本后输入的第二个参数
$?:上一条语句是否正确,如果正确则值为0
$*:执行脚本后输入的所有参数
$#:执行脚本后输入的参数的个数
$PWD:当前目录
$UID:当前用户的id
2.shell脚本输出各种颜色的字符串
#字体色范围:30-37
echo -e "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 红色字 \033[0m"
echo -e "\033[32m 绿色字 \033[0m"
echo -e "\033[33m 黄色字 \033[0m"
echo -e "\033[34m 蓝色字 \033[0m"
echo -e "\033[35m 紫色字 \033[0m"
echo -e "\033[36m 天蓝字 \033[0m"
echo -e "\033[37m 白色字 \033[0m"
#字背景颜色范围:40-47
echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\033[41;30m 红底黑字 \033[0m"
echo -e "\033[42;34m 绿底蓝字 \033[0m"
echo -e "\033[43;34m 黄底蓝字 \033[0m"
echo -e "\033[44;30m 蓝底黑字 \033[0m"
echo -e "\033[45;30m 紫底黑字 \033[0m"
echo -e "\033[46;30m 天蓝底黑字 \033[0m"
echo -e "\033[47;34m 白底蓝字 \033[0m"
#控制选项说明
#\033[0m 关闭所有属性
#\033[1m 设置高亮度
#\033[4m 下划线
echo -e "\033[4;31m 下划线红字 \033[0m"
#闪烁
echo -e "\033[5;34m 红字在闪烁 \033[0m"
#反影
echo -e "\033[8m 消隐 \033[0m "
#\033[30m-\033[37m 设置前景色
#\033[40m-\033[47m 设置背景色
#\033[nA光标上移n行
#\033[nB光标下移n行
echo -e "\033[4A 光标上移4行 \033[0m"
#\033[nC光标右移n行
#\033[nD光标左移n行
#\033[y;xH设置光标位置
#\033[2J清屏
#\033[K清除从光标到行尾的内容
echo -e "\033[K 清除光标到行尾的内容 \033[0m"
#\033[s 保存光标位置
#\033[u 恢复光标位置
#\033[?25| 隐藏光标
#\033[?25h 显示光标
echo -e "\033[?25l 隐藏光标 \033[0m"
echo -e "\033[?25h 显示光标 \033[0m"
3.IF判断逻辑运算符解析
-f : 判断文件是否存在。if[-f fileName]
-d : 判断文件夹是否存在。if[-d dir]
-z : 判断是否为空字符串
-a : 与(and)
-o : 或(or)
在这里给大家分享一个我练习时遇到的一个特别特别特别蛋疼的一个问题
举个例子
#!/bin/bash
DIR=/wxh/ld/456
if[ ! -d $DIR ]
then
mkdir -p $DIR
echo "mkdir ok"
else
echo "ok"
fi
这段代码看起来貌似没什么问题,但是,就是不能执行,他会给你报一些莫名奇妙的错误,例如:
./if.sh:行3: if[ ! -d /wxh/ld/456 ]: 没有那个文件或目录
./if.sh:行4: 未预期的符号 `then' 附近有语法错误
./if.sh:行4: `then'
后来,我去查看别人的代码,终于发现了一个极小的差别
if 后面没有跟空格,正确的需要在if后面加个空格,改完之后就正确了,真的很蛋疼。