admin管理员组

文章数量:1532330

2024年7月16日发(作者:)

shell脚本例子集锦(习题总结)

练习一:写一个脚本

1.设定变量FILE的值为/etc/passwd

2.依次向/etc/passwd中的每个用户问好,并且说出对方的ID是

什么

形如:(提示:LINE=`wc -l /etc/passwd | cut -d" " -f1`)

Hello,root,your UID is 0.

3.统计一个有多少个用户

答案一:#!/bin/bash

file="/etc/passwd"

LINES=`wc -l $file | cut -d" " -f1`

for I in `seq 1 $LINES`;do

userid=`head -$I $file | tail -1 |cut -d: -f3`

username=`head -$I $file | tail -1 |cut -d: -f1`

echo "hello $username,your UID is $userid"

done

echo "there are $LINES users"

答案二:#!/bin/bash

file=/etc/passwd

let num=0

for I in `cat $file`;do

username=`echo "$I" | cut -d: -f1`

userid=`echo "$I" | cut -d: -f3`

echo "Hello,$username,your UID is $userid"

num=$[$num+1]

done

echo "there are $num users"

练习二:写一个脚本

1.切换工作目录至/var

2.依次向/var目录中的每个文件或子目录问好,形如:

(提示:for FILE in /var/*;或for FILE in `ls /var`;)

Hello,log

3.统计/var目录下共有多个文件,并显示出来

答案:#!/bin/bash

cd /var

let num=0

for I in `ls /var/*`;do

echo "hello $I"

num=$[$num+1]

done

echo "the number of files is $num"

练习三:写一个脚本

1.设定变量file的值为/etc/passwd

2.使用循环读取文件/etc/passwd的第2,4,6,10,13,15行,并显示

其内容

3.把这些行保存至/tmp/mypasswd文件中

答案:#!/bin/bash

file="/etc/passwd"

for I in 2 4 6 10 13 15;do

exec 3>/tmp/mypasswd

line=`head -$I $file | tail -1`

echo "$line"

echo "$line" >&3

exec 3>&-

done

练习四:写一个脚本

传递两个整数给脚本,让脚本分别计算并显示这两个整数的和,

差,积,商

答案如下:vim

#!/bin/bash

echo "first number $1" (表示

输出第一个数)

echo "second number $2" (表示

输出第二个数)

echo "

$(($1+$2))" (输出两数之和)

echo

"$[$1-$2]" (输出两数之差)

echo

"$[$1*$2]" (输出两数之积)

echo

"$[$1/$2]" (输出两数之商)

:wq

(表示保存并退出vi编辑器)

chmod +x

(给执行的权限)

./ 2

3 (传递两个参数并执行脚本

作业一:写一个脚本:

1.创建目录/tmp/scripts

2.切换工作目录至此目录中

3.复制/etc/pam.d目录至当前目录,并重命名为test

本文标签: 目录脚本文件显示