基础知识
- –权限分析,当第一位是-的时候表示为文件
当第一位是d的时候表示为目录
- –每三位为一个
- –rwx r-x r-x 755
- –r 读 4
- –w 写 2
- –x 运行 1
-
–开头第一行必须要用
#!/bin/bash
-
–两个大于号>> 表示追加输出
-
–变量赋值的时候 等于号两侧不能有空格
-
–cat << EOF(紧接着按回车)-----------------------------一般用来输出菜单
-
EOF(用来结束代码块,结束EOF必须顶格)
-
–变量
a=3
-
echo $a
查看变量的值(引用变量需要用美元号)
+read -p "gave me a number:" a
(与用户进行交互,可以间接给变量赋值) -
UID查看用户信息
id =0
时候是root
用户 -
–常用的内置变量
$UID
(echo 查看当前系统用户)$?
(echo $? 判断上一条命令是否是成功 结果 只有是0才表示命令成功)$PATH
(echo $PATH 查看环境变量)
-
–比较数字的两种方法
-eq 等于 -ne 不等于 -gt 大于 -lt 小于 -ge 大于等于 -le 小于等于
- [ - ] 首先中括号两侧必须有空格
- [ 2 -eq 3 ] 比较第一个数字和第二个数字是否相等
- [ 2 -eq 2 ] && echo 0 如果前面中括号表达式正确,则输出一个0
- [ 2 -eq 3 ] && echo 0 || echo 1 类似于java : ?
–使用双中括号 可以直接在中间写符号
[[ $line != 10 ]] && echo 1
[[ $line > 10 ]] && echo 1
例子:
userid=500
[ $userid -ne 1000 ] && echo "You are not a valid user"
例子:
line=`cat 99.txt | wc -l`
[ $line -gt 10 ] && cat 99.txt
- –比较字符串的一些方法
[[ $var = "hello" ]] && echo 0 || echo 1
[[ $var =~ ..... ]] && echo 0 || echo 1 可以在当中写正则表达式
- –中括号几种常用用法
[ -z $dir ] && echo 0 || echo 1 判断目录是不是空值
[ ! -z $dir ] && echo 0 || echo 1 判断目录是不是不为空
[ -d $dir ] && echo 0 || echo 1 判断路径是否存在
[ ! -d $dir ] && echo 0 || ehco 1 判断路径是否不存在
[ -f 文件名 ] && echo 0 || echo 1 判断文件是否存在
函数
-
–source(或者用 . ) ./函数库.lib 调用函数库
-
–shell函数里面不可以传递参数
function errorinfo(){
echo "hello"
}
errorinfo
直接用函数名便可以直接调用
- –shell中位置变量
$0 ----代表执行脚本的路径+脚本的名字
$1 ----表示脚本启动的时候后面所跟的第一个参数
$2 ----表示脚本启动的时候后面所跟的第二个参数
$3 ----表示脚本启动的时候后面所跟的第三个参数
$# ----表示在脚本启动的时候一共写了几个参数
$@ ----将脚本启动的时候的所有参数
- –if判断格式讲解
if [ $i -eq 0 ];then
echo "="
elif
else
echo "!="
fi
- –while 循环与for循环( $(())括号中表示的是算数运算符 )
`seq 10` 输出1------10
`seq 2 10` 输出2------10
`seq 2 2 10` 输出2 4 6 8 10
`seq 10 -1 1` 输出10 9 8 7 6 5 4 3 2 1
for i In `ls` 循环输出当前目录,并查看每个文件
do
cat $i
done
--break和continue
i=0
while [ 9 -ne 10 ]
do
i=$(($i+1))
echo $1
[ $i -ge 10 ] && break
done
- –利用循环按行读取文件
- –case条件分支简单讲解