Linux Shell经典面试题(其二)
参考:http://blog.csdn.net/hiyun9/article/details/52057255
- 列表内容
1.写一个脚本,实现判断10.0.0.0/24网络里,当前在线用户的IP有哪些(方法有很多)
############当前在线用户的IP脚本编写##############
$ vim is-online-user.sh
#!/bin/bash
tmp_fifofile=/tmp/$$.fifo
mkfifo $tmp_fifofile
exec 6<> $tmp_fifofile
rm -rf $tmp_fifofile
thread=254
for ((i=0;i<$thread;i++))
do
echo >&6
done
for ((i=2;i<255;i++))
do
read -u6
{
ip=172.16.27.
ping $ip$i -c 1 > /dev/null && echo $ip$i:live || echo $ip$i:dead >>123
echo >&6
}&
done
wait
exec 6>&-
exit 0
2.bash for循环打印下面这句话中字母数不大于6的单词(昆仑万维面试题)。请至少用两种方法实现
I am oldboy teacher welcome to oldboy training class.
#!/bin/bash
echo '###Usage1#####'
a='I am oldboy teacher welcome to oldboy training class.'
for i in $a
do
NUM=`echo $i | wc -L`
if [ $NUM -le 6 ];then
echo $i
fi
done
echo '###Usage2#####'
for i in $a
do
if [ ${#i} -le 6 ]; then
echo $i
fi
done