shell 04
================================================
一,练习:编写脚本,实现批量修改文件扩展名
touch abc{01..10}.txt //创建10个文件作为素材
vim test01.sh
#!/bin/bash
#批量修改扩展名
for i in $(ls *.txt) //找到所有的txt文件交给for循环
do
a=${i%.*} //用去尾的方法删除扩展名
mv $i $a.doc //再将源文件修改为doc的
done
改良版:
#!/bin/bash
#批量修改扩展名
for i in $(ls *.$1) //要改啥类型的文件用$1位置变量表示
do
a=${i%.*}
mv $i $a.$2 //要改成啥,用$2表示
done
------------------------------------------------------
定义变量初值(备用值)
${变量名:-初值}
#!/bin/bash
read -p "请输入要创建的账户名:" u
useradd $u
read -p "请输入要配置的密码(默认123456):" p
echo ${p:-123456} | passwd --stdin $u //如果没有输入密码直接回车的话密码
就是123456
------------------------------------------------------
总结
${变量名:} 截取
${变量名/} 替换
${变量名#} 掐头
${变量名%} 去尾
${变量名:-} 定义初值(备用值)
----------------------------------------------------
二,正则表达式,使用若干符号配合某工具对文档进行增删改
查等操作
head -5 /etc/passwd > user //准备素材
grep ^root user //找以root开头的行
grep bash$ user //找以bash结尾的行
grep ^$ user //找空行
grep -v ^$ user