shell编程

shell编程

sh -x :显示脚本的执行过程

shell编程之局部变量

局部变量:只在shell脚本中生效
命名规则:必须以字母或下划线开头(字母、数字、下划线组成)
驼峰语法:首个单词小写,其余单词首字母

shell编程之环境变量(全局变量)

环境变量:大写,在任意地方都可以使用,如$PS1,$LANG,$PATH
查看系统中所有环境变量:env
环境变量分为两类:bash内置的环境变量与自定义环境变量
自定义环境变量:export 命令,如exprot ABC=AAA
取消变量:unset 变量名
永久生效:将定义的变量名追加到/etc/profile中

与环境变量相关的文件

/etc/profile:全局配置文件
/etc/bashrc:全局别名配置文件
/etc/profile.d:用户登陆系统时会运行这个目录的脚本
~/.bash_profile:用户配置文件
~/.bashrc:用户别名配置文件

shell编程之特殊变量

$0:表示脚本的名字
$1:表示脚本中的第一个参数
$2:表示脚本中的第二个参数
$n:表示脚本中的第N个参数
$#:表示脚本中共有几个参数
$?:表示上一个命令有没有执行成功,0表示执行成功,非0表示执行失败
read:表示交互式输出
    -p:在屏幕提示输出语名
    -s:关闭回显,用于密码输出
    -t:等待时间,多少秒之后出退

shell编程之测试语句

#-f:表示文件,-d:表示目录
[root@web02 files]# [ -f /etc/hosts  ]
[root@web02 files]# echo $?
0
[root@web02 files]# [  -d /etc/aaa ]
[root@web02 files]# echo $?
1

shell编程之if语句

-gt:大于 >
-lt:小于 <
-ne:不等于 !=
-eq:等于 ==
-le:小于等于 <=
-ge:大于等于 >=
#语法
#单分支
if [ 条件 ];then
   命令
fi
#双分支
if [条件];then
  ....
else
  ....
fi
#多公支
if [条件];then
  命令
elif
  命令
else
  命令
fi
例子:判断脚本的参数个数不是2就退出
#!/bin/bash
#x=$1
#y=$2
if [ $# -ne 2 ];then
  echo "Usge:需要两个参数"
  exit
fi

shell编程之for循环

#语法
for 变量名字  in  列表
do
     命令
done
#例子:优化linux开机启动项目,只保留crond;sshd;network;rsyslog;sysstat,其他的都关闭
#!/bin/bash
stat_name=`chkconfig |grep -v 'crond|ssdh|network|rsyslog|sysstat'|awk '{print $1}'`
for name in $stat_name
do
   chkconfig $name on
done
#例子2:批量添加用户并设置随机密码
    #!/bin/bash
user=`seq -f "s%02g" 10`
for username in $user
do
  password=`echo $RANDOM |md5sum|cut -c 1-8` 
  useradd $username
  echo $username $password >> a.txt 
  echo $password |passwd --stdin $username 
done
原文地址:https://www.cnblogs.com/yjiu1990/p/10336257.html