个人笔记,不保证正确性,请谨慎参考
- #!/bin/bash
表示此脚本用bash解释执行 - cat
cat file读取file内容
for i in ‘cat file’ //按行读取file中的内容 - cut
cut -d : -f 1 //按域分段,分段的标志是":" 然后取第一段
例如:
cat /etc/passwd|head -n 5|cut -d : -f 1,3-5,7 //找到目标文件,取前五行,对其按域分段,分段的标志是":" 然后取1,3,4,5,7段
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
//这里的第一个:是中文符号,英文符号在这里打不出来
输出:
root:0:0:root:/bin/bash
bin:1:1:bin:/sbin/nologin
daemon:2:2:daemon:/sbin/nologin
adm:3:4:adm:/sbin/nologin
lp:4:7:lp:/sbin/nologin - exec
1、exec 3</home/shell/testdir/a.txt //以“只读方式”打开/home/shell/testdir/a.txt,文件描述符对应为3
2、exec 3>/home/shell/testdir/a.txt //以“只写方式”打开/home/shell/testdir/a.txt,文件描述符对应为3
3、exec 3<>/home/shell/testdir/a.txt //以“读写方式”打开/home/shell/testdir/a.txt,文件描述符对应为3
4、exec 3>&- //关闭文件描述符3
示例:功能是从a.txt文件中提取第2,4,6行的内容打印到终端并且存储到b.txt文件中,代码如下所示:
#!/bin/bash
file="/home/shell/testdir/a.txt"
exec 3>/home/shell/testdir/b.txt
for N in 2 4 6;do
line=`head -$N $file | tail -1`
echo $line
echo “$line” >&3
done
echo 3>&- - shell传参
./test.sh 2 3 //向test.sh中传两个参数 - vim
插入:|
退出:esc->:->w/wq/… - if else语句
if[ <判断条件> ];then
<执行脚本>
else
<执行脚本>
fi - 写入
echo “准备写入的文本” > temple.txt - 比较
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于 - 进制
进制的英文表示法:BIN、OCT、HEX、DEC分别代表二、八、十六、十进制