1、bash脚本的参数处理
BASH的参数可以用$加数字编号来访问,其中:
$#代表脚本的参数个数
$1代表脚本的第1个参数
$2代表脚本的第2个参数
以此类推,$n代表脚本的第n个参数,但是,不能用$10来访问第十个参数。
如果遇到参数超过10个的情况,必须处理或保存第一个参数$1,然后使用shift命令删除参数1并将所有剩余的参数下移一位,因此
$10就变成了$9,同时,$#的值将被您更新以反映参数的剩余量。下面的例子用来遍历脚本的参数列表:
#!/bin/bash
i = 1;
while (($#> 0))
do
echo $i, $1
shift
let i=i+1
done
存为test.sh,加上可执行权限,然后执行./test.sh 1 2 3 4 5 6 7 8 9 10,结果如下:
11
1, 1
2, 2
3, 3
4, 4
5, 5
6, 6
7, 7
8, 8
9, 9
10, 10
11, 11
2、shell脚本自动修改用户口令
oz想我写个脚本恢复默认设置,其中有一项就是要恢复成默认密码,在这之前,偶只晓得该密码是passwd,然后就会显示喊你输入旧密码,新密码,是一种与用户交互的形式。但素偶的默认密码其实是固定的,不用交互应该就可以实现,用脚本应该是可以实现的。
最开始在网上查,大部分都是看到用expect来处理用户交互,但素用在偶这儿感觉有点大材小用,于是呼叫了下师兄,师兄也不清楚,于是一起查,最后实践出一条命令是可行的,很简单
echo 用户名:密码 | chpasswd
其实我用了也不清楚到底是什么意思,因为偶对shell命令不熟,管道这类的也不大清楚。师兄解释了下:chpasswd就是通过用户输入用户名:密码来更改一组用户的密码。echo相当于用echo的输出做为chpasswd的输入。
命令很简单,道理也很简单,就怕不知道,想不到!
3、替换文件中的某一行内容
替换a.txt文件中的第二行为aaaa:
sed -e '2s/*/aaaa:g' a.txt