歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> linux _for循環語句

linux _for循環語句

日期:2017/3/3 12:16:37   编辑:Linux技術

for:語法格式

for 變量 in 列表; do

循環語句

done

for I in 1 2 3 4 5;do

加法運算

done

遍歷完成之後,退出:

如何生成列表:

{1..100}

declare -i sum=0 定義sum為整形

-x 聲明成環境變量

`seq [起始數 步進長度] 結束數`

#!/bin/bash

declare -i SUM=0

for I in {1..100};do

letSUM=$SUM+$I

done

echo “The sum is :$SUM.”

2.向每個用戶問好

[root@localhost ~]# LINES=`wc -l/etc/passwd | cut -d':' -f1`

[root@localhost ~]# for I in `seq 1 $LINES`;do echo "Hello,`head -$I /etc/passwd |tail -1 |cut -d':' -f1`";done

寫一個腳本,

1.設定變量FILE的值為/etc/passwd

2.向每個用戶問好,並顯示用戶的shell。列如Hello,root,your shell :/bin/bash

#!/bin/bash

#

FILE=/etc/passwd

LINE=`wc -l $FILE |cut -d' ' -f1`

for I in `seq 1 $LINE`;do

echo "Hello,`head -$I /etc/passwd |tail -1 |cut -d':' -f1`,yourshell:`head -$I /etc/passwd |tail -1 |cut -d':' -f7`"

done

3 統計一共有多少個用戶

只向默認shell 為bash的用戶問聲好

#!/bin/bash

#

LL=`sed -r -n '/bash/'p /etc/passwd |wc -l`

for I in `seq 1 $LL`; do

echo"Hello,`sed -r -n '/bash$/'p /etc/passwd | head -$I | tail -1 |cut -d':'-f1`"

done

寫一個腳本

添加10個用戶user1 到user10 ,但是要求只有用戶不存在的情況下才能添加:

#!/bin/bash

#

for I in{1..10};do

iduser$I &>/dev/null

if [ $? -eq 0 ]; then

echo "yonghucunzai"

else

useradd user$I &>/dev/null

echo "user$I" |passwd --stdinuser$I &>/dev/null

echo "add user$I OK"

fi

done擴展:接受一個參數Add :添加用戶uer1..user10Del : 刪除用戶:user1..user10

#!/bin/bash

#

if [ $#-eq 1 ];then

if [ $1 ='add' ];then

for I in {1..10};do

id user$I &>/dev/null

if [ $? -eq 0 ]; then

echo "yonghucunzai"

else

useradd user$I &>/dev/null

echo "user$I" |passwd--stdin user$I &>/dev/null

echo "add user$I OK"

fi

done

elif [ $1= 'del' ];then

for I in {1..10};do

id user$I &> /dev/null

if [ $? -eq 0 ];then

userdel -r user$I

echo "del user OK"

else

echo "no such user"

exit 1

fi

done

else

echo " add&del"

fi

else

echo "qing churu yige canshu,del&add"

fi 寫一個腳本 計算100以內所有能被3整除的正整數的和

#!/bin/bash

#

declare-i M

M=0

for I in{1..100};do

if [ `echo "$I%3"|bc` -eq 0];then

M=$I+$M

else

M=$M

fi

done

echo "sum=$M" 寫一個腳本計算100以內所有奇數的和以及所有偶數的和;分別顯示之;#!/bin/bash

#

declare-i M

declare-i J

declare-i B

M=0

J=0

for I in{1..100};do

B=`echo "$I%2"|bc`

if [ $B -eq 0 ];then

M=$I+$M

else

J=$I+$J

fi

done

echo"oushu=$M;jishu=$J"

寫一個腳本。分別顯示當前系統上所有默認的shell 為bash 的用戶和默認shell為/sbin/nologin的用戶,並統計各類shell下的用戶總數顯示結果如:#!/bin/bash

#

M=`sed -n'/bash$/p' /etc/passwd |wc -l`

J=`sed -n'/\/sbin\/nologin$/p' /etc/passwd |wc -l`

for I in`seq 1 $M`;do

echo "`sed -n '/bash$/p' /etc/passwd|head -$I |tail -1 |cut -d':' -f1` is bash"

done

for I in`seq 1 $J`;do

echo "`sed -n '/\/sbin\/nologin$/p'/etc/passwd |head -$I |tail -1 |cut -d':' -f1` is /sbin/nologin"

done

echo "/bash=$M;/sbin/nologin=$J"

本文出自 “linux運維” 博客,轉載請與作者聯系!

Copyright © Linux教程網 All Rights Reserved