作者:潇洒看不惯_185 | 来源:互联网 | 2023-02-03 15:33
练习1设定变量FILE的值为etcpasswd,并依次向其中的每个用户问好,说出对方的id,最后统计一共有多少个用户1#!binbash2fileetcpasswd3lines
练习1
设定变量FILE的值为/etc/passwd,并依次向其中的每个用户问好,说出对方的id,最后统计一共有多少个用户
1 #!/bin/bash
2 file="/etc/passwd"
3 lines=wc -l $file | cut -d " " -f1
4 for i in `seq 1 $lines`;do
5 userid=head -$i $file | tail -1 |cut -d: -f3
6 username=head -$i $file | tail -1 | cut -d: -f1
7 echo "hello $username, your UID is $userid"
8 done
9 echo "there are $lines users"
练习2
切换工作目录至/var,依次向/var目录中的每个文件或子目录问好
#!/bin/bash
cd /var
let num=0
for i in `ls`;do
echo "hello $i"
num=$[$num+1]
done
echo "the number of files is $num"
练习3
设定变量的值为/etc/passwd,使用循环读取文件中的第2,4,6,10,13,15行,并显示其内容,将这些内容保存至/tmp/mypasswd中
#!/bin/bash
file="/etc/passwd"
exec 3 > /tmp/mypasswd
for f in 2 4 6 10 13 15;do
line=`sed -n "${f}p" $file`
echo "$line"
echo "$line">&3
done
exec 3>&-
练习4
传递两个整数给脚本,让脚本分别计算并显示这两个整数的和,差,积,商
#!/bin/bash
echo "输入的第一个数为$1"
echo "输入的第二个数为$2"
echo "二数之和为$[$1+$2]"
echo "二数之差为$[$1-$2]"
echo "二数之积为$[$1*$2]"
echo "二数之商为$[$1/$2]"
练习5
创建目录/tmp/scripts,切换工作目录至此目录中,复制/etc/pam.d目录到当前目录,并改名为test,将当前目录的test及其里面的文件和子目录的属主改为redhat,将test及其子目录中的文件的其它用户权限改为没有任何权限
#!/bin/bash
mkdir -v /tmp/scripts
cd /tmp/scripts
cp /etc/pam.d ./test
chown -R redhat ./test
chmod -R o=--- ./test
练习6
显示当前系统日期和时间,然后创建目录/tmp/lstest,切换工作目录至/tmp/lstest,创建目录a1d, b56e, 6test,创建空文件xy, x2y, 732,列出当前目录下以a, x或者6开头的文件或目录,列出当前目录下以字母开头,后跟一个任意数字,而后跟任意长度字符的文件或目录
#!/bin/bash
date
mkdir -v /tmp/lstest
cd /tmp/lstest
mkdir a1d b56e 6test
touch xy x2y 732
ls [ax6]*
ls [[:alpha:]][[:dight:]]*