日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

bash编程练习题及答案

發布時間:2025/3/20 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bash编程练习题及答案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、 刪除/etc/grub.conf文件中行首的空白符

? ? ?sed s@^[[:space:]]*@@' /etc/grub.conf
?

2、 替換/etc/inittab文件中"id:3:initdefault:" 一行中的數字為5

3、 刪除/etc/inittab文件中的空白行

? ? ??sed /^$/d /etc/inittab

4、 刪除/etc/inittab文件中開頭的#號

? ? ?sed 's/^#*//g' /etc/inittab

5、 刪除某文件中開頭的#號及后面的空白字符,但要求#號后面必須有空白字符

? ? ?sed s/^#[[:space:]]*//g 123.txt

6、 刪除某文件中以空白字符后面跟#類的行中的開頭的空白字符及#

? ? ? ? ?#abc

? ? ? ? ? # hello world

? ? ? ? ? ? ? ?#hi world

? ? ?sed s/^[[:space:]]*#//g 123.txt

7、 取出一個文件路徑的目錄名稱

? ? ?/etc/fstab

? ? ?/var/log

? ? ?取出etc 和var

目錄名: ?

echo "/etc/rc.d/" | sed -r 's@^(/.*/)[^/]+/?@\1@g'

基名:

echo "/etc/rc.d/" | sed -r?'s@^/.*/([^/]+)/?@\1@g'

老師標準答案:

sed練習:
1、刪除/etc/grub.conf文件中行首的空白符;
sed -r 's@^[[:spapce:]]+@@g' /etc/grub.conf
2、替換/etc/inittab文件中"id:3:initdefault:"一行中的數字為5;
sed 's@\(id:\)[0-9]\(:initdefault:\)@\15\2@g' /etc/inittab
3、刪除/etc/inittab文件中的空白行;
sed '/^$/d' /etc/inittab
4、刪除/etc/inittab文件中開頭的#號;
sed 's@^#@@g' /etc/inittab
5、刪除某文件中開頭的#號及后面的空白字符,但要求#號后面必須有空白字符;
sed -r 's@^#[[:space:]]+@@g' /etc/inittab
6、刪除某文件中以空白字符后面跟#類的行中的開頭的空白字符及#
sed -r 's@^[[:space:]]+#@@g' /etc/inittab
7、取出一個文件路徑的目錄名稱;
echo "/etc/rc.d/" | sed -r 's@^(/.*/)[^/]+/?@\1@g'????
基名:
echo "/etc/rc.d/" | sed -r 's@^/.*/([^/]+)/?@\1@g'????

#abc
# hello world
?? # hi world
? ? ?

練習:
傳遞一個用戶名參數給腳本,判斷此用戶的用戶名跟其基本組的組名是否一致,并將結果顯示出來。
#!/bin/bash
#

if ! id $1 &> /dev/null; then

? echo "No such user"

? exit 10

fi
if [ `id -n -u $1` == `id -n -g $1` ]; then
? echo "The same"
else
? echo "Not the same"
fi

=================================================================

練習:寫一個腳本

傳遞一個參數(單字符就行)給腳本,如參數為q、quit、Q、Quit,就退出腳本,否則, 就顯示用戶的參數:

#!/bin/bash
#
if [ $1 = 'q' ];then
? echo "Quitting"
? exit 0
elif [ $1 = 'Q'];then
? echo "Quiting"
? exit 1
elif [ $1 = 'Quit' ]; then
echo "Quitting"
? exit 2
elif [ $1 = 'QUIT' ]; then
? echo "quiting"
? exit 3
else
? echo "$1"
fi

=======================================================================

練習:
傳遞三個參數給腳本,第一個為整數,第二個為算術運算符,第三個為整數,將計算結果顯示出來,要求保留兩位精度。形如:
./calc.sh 5 / 2

提示: ?

echo "scale=2;111/22;" | bc

bc <<< "scale=2;111/22"

#!/bin/bash
#
A=$1
x=$2
B=$3
result= echo "scale=2;$A$x$B;"|bc
echo $result

====================================================================

寫一個腳本:
判斷當前主機的CPU生產商,其信息在/proc/cpuinfo文件中vendor id一行中。
如果其生產商為AuthenticAMD,就顯示其為AMD公司;
如果其生產商為GenuineIntel,就顯示其為Intel公司;
否則,就說其為非主流公司;

#!/bin/bash
#
mycpu=`cat /proc/cpuinfo | grep vendor | cut -d: -f2 | head -1 | sed 's/^[[:space:]]//g'`
if [ $mycpu = "GenuineIntel" ]; then
? echo "INTEL chip inside"
elif [ $mycpu = "GenuineIntel" ]; then
? echo "AMD chip inside"
else
? echo "unkown cpu type"
fi

=====================================================================

寫一個腳本:
給腳本傳遞三個整數,判斷其中的最大數和最小數,并顯示出來。
MAX=0
MAX -eq $1
MAX=$1
MAX -lt $2
MAX=$2

用兩兩比較法

#!/bin/bash
#
MAX=0
MIN=0
if [ $1 -lt $2 ]; then
? MAX=$2
? MIN=$1
else
? MAX=$1
? MIN=$2
fi
if [ $MAX -lt $3 ]; then
? MAX=$3
else
? MIN=$3
fi
echo "Max number is $MAX, the min number is $MIN"

======================================================================

練習:
傳遞3個參數給腳本,參數均為用戶名。將此些用戶的帳號信息提取出來后放置于/tmp/testusers.txt文件中,并要求每一行行首有行號。

echo "1 $LINES" >> / /tmp/testusers

echo "2 $LINES" >> / tmp/testusers

####腳本有問題###

!/bin/bash
#
for I in `seq 1 $#`;do
? #echo "`cat /etc/passwd | grep $I`" >> /tmp/tempusers
? echo $`$I`
done

=======================================================================

循環練習

向系統內所有用戶問好:

LINES=`wc -l /etc/passwd | cut -d' ' -f1`

for I in `seq 1 $LINES`;do echo "Hello, `head -n $I /etc/passwd| tail -1 | cut -d: -f1`";done

======================================================================

寫一個腳本:
1、設定變量FILE的值為/etc/passwd
2、依次向/etc/passwd中的每個用戶問好,并顯示對方的shell,形如:?
???? Hello, root, your shell: /bin/bash
3、統計一共有多少個用戶

擴展: 只向默認shell為bash的用戶問好

#!/bin/bash
#
FILE=/etc/passwd
LINES=`wc -l /etc/passwd| cut -d' ' -f1`
for I in `seq 1 $LINES`;do
? echo "Hello,`cat /etc/passwd | head -n $I | tail -1 | cut -d: -f1 ` , Your shell is `cat /etc/passwd| head -n $I | tail -1 | cut -d: -f7`"
done

擴展: 只向默認shell為bash的用戶問好,

擴展版:

#!/bin/bash
#
SUM=0
FILE=/etc/passwd
LINES=`wc -l /etc/passwd| cut -d' ' -f1`
for I in `seq 1 $LINES`;do
? USER=`cat /etc/passwd | head -n $I | tail -1 | cut -d: -f1 `
? USHELL=`cat /etc/passwd| head -n $I | tail -1 | cut -d: -f7`
? if [[ $USHELL == '/bin/bash' ]]; then???? ? #if $USHELL is null, then you???? will get error with the???? sinlge[], so please use???? double[[]] when???? judge the string equation.
? echo "Hello, $USER , Your shell is $USHELL"
? SUM=$[$SUM+1]
? fi
done
echo "Total user is $SUM"

=======================================================================

寫一個腳本:
1、添加10個用戶user1到user10,密碼同用戶名;但要求只有用戶不存在的情況下才能添加;


#!/bin/bash
#
for I in `seq 1 10`; do
? if ! id user$I &> /dev/null; then
??? useradd user$I &> /dev/null
??? echo "user$I"| passwd --stdin user$I &> /dev/nul
? else
??? echo "user$I already existed, will not create"
? fi
done

擴展:
接受一個參數:
add: 添加用戶user1..user10
del: 刪除用戶user1..user10
其它:退出

#!/bin/bash
#
if [[ $1 == add ]]; then
? for I in `seq 1 10`; do
??? if ! id user$I &> /dev/null; then
????? useradd user$I &> /dev/null
????? echo "user$I"| passwd --stdin user$I &> /dev/nul
??? else
????? echo "user$I already existed, will not create"
??? fi
? done
elif [[ $1 == del ]];then
? echo "delete function is running"
? for I in `seq 1 10`;do
? userdel -rf user$I &> /dev/null
? done
fi

====================================================================

寫一個腳本:
計算100以內所有能被3整除的正整數的和;
取模,取余:%
3%2=1
100%55=45

#!/bin/bash
#
SUM=0
for I in `seq 1 100`;do
? if [ $(($I%3)) = 0 ];then
??? SUM=$[$SUM+$I]
? fi
done
echo "The sum is $SUM"

====================================================================


寫一個腳本:
計算100以內所有奇數的和以及所有偶數的和;分別顯示之;

#!/bin/bash
#
J=0
O=0
for I in `seq 1 100`;do
? if [ $(($I%2)) = 0 ]; then
??? J=$[$J+$I]
? else
??? O=$[$O+$I]
? fi
done
echo "SUM J is $J"
echo "SU O is $O"

=====================================================================

寫一個腳本,分別顯示當前系統上所有默認shell為bash的用戶和默認shell為/sbin/nologin的用戶,并統計各類shell下的用戶總數。顯示結果形如:
BASH,3users,they are:
root,redhat,gentoo

NOLOGIN, 2users, they are:
bin,ftp

可以追加到一個文件內,然后在 顯示那個文件

#!/bin/bash
#
ushells=""
bash_count=0
nologin_count=0
LINES=`cat /etc/passwd | wc -l`
for I in `seq 1 $LINES`;do
? if [[ `cat /etc/passwd | head -n $I | tail -1 | cut -d: -f7` == /bin/bash ]]; then
?? echo " `cat /etc/passwd | head -n $I | tail -1 | cut -d: -f1`" >> /tmp/bash_users
?? bash_count=$[$bash_count+1]
? elif [[ `cat /etc/passwd | head -n $I | tail -1 | cut -d: -f7` == /sbin/nologin ]]; then?
??? echo " `cat /etc/passwd | head -n $I | tail -1 | cut -d: -f1`" >> /tmp/nologin_users
??? nologin=$[$nologin+1]
? fi
done
echo "BASH, $bash_countusers, they are:"
echo `cat /tmp/bash_users`
echo "NOLOGIN, $nologin_countusers,they are:"
echo `cat /tmp/nologin_users`

=======================================================================


轉載于:https://blog.51cto.com/richier/1632742

總結

以上是生活随笔為你收集整理的bash编程练习题及答案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品美女久久久网av | 日韩免费在线看 | 操bbbbb| 久久综合五月天 | 99在线精品视频免费观看20 | jk美女又爽又黄视频 | 日韩一区免费 | 国产精品久久久久久亚洲 | 国产精品久久久爽爽爽麻豆色哟哟 | 青青草网站| 久久久国产成人一区二区三区 | www99re| 日本在线观看a | 亚洲视频一区二区三区 | 欧美va亚洲va | 91美女片黄在线观看 | julia一区| 欧美激情一二三 | 宅男噜噜噜666在线观看 | 韩国日本美国免费毛片 | 亚洲欧美制服丝袜 | 怡红院一区二区三区 | 91视频最新地址 | 蜜臀久久99静品久久久久久 | 日本免费a视频 | 欧美猛交免费 | 怒海潜沙秦岭神树 | 日韩亚洲欧美一区二区三区 | 黄色小说视频 | 国精无码欧精品亚洲一区蜜桃 | 久久久97 | 成人p站在线观看 | 久久久精品免费视频 | 一二三区中文字幕 | 日本69熟| 久久中文娱乐网 | 国产视色 | 亚洲色成人一区二区三区小说 | 精品黄色片 | 嫩草嫩草嫩草嫩草嫩草嫩草 | 成人毛片18女人毛片免费 | 日韩一级久久 | 黄色aa网站 | 欧美高清在线一区 | 玩日本老头很兴奋xxxx | 性欧美色图| 激情在线网站 | 国产精品一区二区入口九绯色 | 亚洲视频一二 | aa在线视频| 激情欧美一区二区三区 | 国产成人亚洲精品自产在线 | 日日插插 | 国产精品色哟哟 | 午夜免费视频网站 | 亚洲乱亚洲乱妇 | 欧洲在线一区 | 国产在线观看免费av | 久久久夜色精品 | 女生扒开尿口给男生捅 | 亚洲 小说区 图片区 都市 | 久久久精品亚洲 | 亚洲黄色av网站 | 午夜av中文字幕 | 欧美日视频 | 亚洲美女在线视频 | 爱情岛论坛自拍 | 男女视频在线免费观看 | 美女在线免费视频 | 琪琪在线视频 | 国产欧美日韩精品在线观看 | 超薄肉色丝袜一二三 | 日本高清不卡在线观看 | 国产久精品 | 在线观看毛片网站 | 欧美一区二区区 | av一卡 | 91夜色 | 亚洲免费片 | 成人性生交大片免费看r链接 | 久久免费播放视频 | 日韩精品极品视频免费观看 | 一二三区视频 | 一区二区三区四区精品视频 | 国产第6页 | 男人天堂资源网 | 韩国美女一区二区 | 午夜视频一区 | 亚洲国产久 | 中国老太婆性视频 | 天天天干干干 | 久久久国产精品一区 | 精品国产日本 | 午夜一区二区三区免费 | aaaa黄色片 | 日日夜夜免费精品视频 | 麻豆一区二区 | 在线看片黄 | 日韩专区欧美专区 |