苍天有泪 发表于 2018-8-21 12:14:04

shell特殊用法

  特殊用法一while
  语法格式
  while read LINE; do
  循环体
  done < /PATH/FROM/SOMEFILE
  功能:依次读取/PATH/FROM/SOEMFILE文件中的每一行,且将此行赋值给LINE变量中
  示例:扫描/etc/passwd文件每一行,如发现GECOS字段为空,则填充用户名和单位电话为123,并提示该用户的GECOS信息修改成功
#!/bin/bash  
#
  
FILE=/etc/passwd
  
while read LINE; do
  
GE=`echo $LINE | cut -d: -f5`
  
USER=`echo $LINE | cut -d: -f1`
  
if [[ -z $GE ]]; then
  
    usermod -c "${USER}123" $USER
  
    echo "Modify $USER finished.."
  
else
  
    echo "$USER can't modify"
  
fi
  

  
done < $FILE
  

  
unset FILE GE USER
  
  
  
  特殊用法二 for
  语法格式
  for ((控制变量初始化;条件判断表达式;控制变量的修正表达式)); do
  循环体
  done
  功能:赋值判断和修正条件都是(())中完成,满足判断表达式即执行一次循环体,结束会先进行控制变量修正运算,而后再做条件判断。
  此用法和while很相似,完全可以完全替换,但是此用法更适合于数字的计算。
  示例:计算1-10之和
#!/bin/bash  

  
declare -i sum=0
  
for (( i=1; i
页: [1]
查看完整版本: shell特殊用法