shell脚本编程
ls | wc -l 统计ls目录下有多少个文件
ls -l | grep ^d , 查看文件夹
ls -l | grep ^d | wc -l , 查看文件夹有多少个
Shell脚本:
很多命令本身就是shell脚本,如 startx
vi `which startx`
vi /etc/rc.d/rc.sysinit 可以修改系统的启动脚本文字
Shell中正则表达式
与Shell脚本进行交互
$1、$2、$3 都是参数,使用参数来传递内容
$# 一共多少个参数
$? 上一个命令是否成功执行
$$ 显示进程号
read 读取变量,读入数据给变量
printf 和 echo 输出数据
如:read -p "Please input your name:" AAA
printf "$AAA is smart"
可以使用命令来进行交互
Shell脚本执行
1.输入脚本的绝对路径或相对路径, 如: /root/backup ./backup 要求有可执行权限(方式),是新打开一个bash执行
2.bash脚本或tcsh脚本,表示以bash或tcsh来执行脚本, 如: bash /root/backup 和 bash ./aaa 不要求有可执行权限(方式),是新打开一个bash执行
3.再脚本的路径前加"." ,如: . ./backup . /root/backup 不要求有可执行权限(方式),是在当前的bash执行
vi b
echo "AAAAAAAAAAAAAAAAAAA"
pstree |grep -A2 -B2 pstree 在当前的bash中执行
export BBB=weixl
chmod a+x b
/tmp/b 这是新打开一个bash来执行,也就是kdeinit-bash-bash-pstree
bash ./b 这也是新打开一个bash来执行
echo $BBB 显示为空,因为以上两种方式,export 只在当前的脚本中,或子shell中执行,以上两种新打开bash就无法找到
第三种方式 . ./b或 . /tmp/b,这样的话,执行echo $BBB ,就可以显示weixl了
打开初始化脚本 vi /etc/profile 查看执行方式的shell
bash脚本中的流程控制
1.条件判断控制 [ ] && || if case
2.循环控制 while utile for break continue
[ ] 在bash中可以判断真假,如:[ -f /bin/ls ] && /bin/ls
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29056818/viewspace-768524/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29056818/viewspace-768524/