Linux Bash Shell 学习笔记

来源:互联网 发布:美工p图多少钱一张 编辑:程序博客网 时间:2024/05/19 22:57

1、bash脚本的参数处理

       BASH的参数可以用$加数字编号来访问,其中:

       $#代表脚本的参数个数

       $1代表脚本的第1个参数

       $2代表脚本的第2个参数

       以此类推,$n代表脚本的第n个参数,但是,不能用$10来访问第十个参数

        如果遇到参数超过10个的情况,必须处理或保存第一个参数$1,然后使用shift命令删除参数1并将所有剩余的参数下移一位,因此

$10就变成了$9,同时,$#的值将被您更新以反映参数的剩余量。下面的例子用来遍历脚本的参数列表:        

#!/bin/bashi = 1;while (($#> 0))do    echo $i, $1    shift    let i=i+1done

存为test.sh,加上可执行权限,然后执行./test.sh  1 2 3 4 5 6 7 8 9 10,结果如下:

111, 12, 23, 34, 45, 56, 67, 78, 89, 910, 1011, 11


 

 

2、shell脚本自动修改用户口令

oz想我写个脚本恢复默认设置,其中有一项就是要恢复成默认密码,在这之前,偶只晓得该密码是passwd,然后就会显示喊你输入旧密码,新密码,是一种与用户交互的形式。但素偶的默认密码其实是固定的,不用交互应该就可以实现,用脚本应该是可以实现的。

最开始在网上查,大部分都是看到用expect来处理用户交互,但素用在偶这儿感觉有点大材小用,于是呼叫了下师兄,师兄也不清楚,于是一起查,最后实践出一条命令是可行的,很简单

echo 用户名:密码 | chpasswd

其实我用了也不清楚到底是什么意思,因为偶对shell命令不熟,管道这类的也不大清楚。师兄解释了下:chpasswd就是通过用户输入用户名:密码来更改一组用户的密码。echo相当于用echo的输出做为chpasswd的输入。

命令很简单,道理也很简单,就怕不知道,想不到!

 

 

3、替换文件中的某一行内容

替换a.txt文件中的第二行为aaaa:

sed -e '2s/*/aaaa:g' a.txt
 

     

 

原创粉丝点击