菜鸟求助linux shell 变量设置,看不懂.

小弟看到了一个脚本,要求统计系统中使用/bin/bash作为shell的用户,并将用户名称打印输出,用户名都输出在同一行类似SHELL16users,Theyare:ro... 小弟看到了一个脚本,要求统计系统中使用/bin/bash作为shell的用户,并将用户名称打印输出,用户名都输出在同一行

类似 SHELL 16 users, They are:
root,root_one,root_two

脚本内容如下,
BASH_C=`grep '/bin/bash' /etc/passwd | wc -l`
NOLOGIN_C=`grep '/sbin/nologin' /etc/passwd | wc -l`
echo "BASH,$BASH_C'users',they are:"
for i in `seq 1 $BASH_C`;do
BASH_N="$BASH_N`grep '/bin/bash' /etc/passwd | head -$i | tail -1 | cut -d: -f1`,"
done
echo $BASH_N

输出结果如下:
[root@server02 ~]# sh k.sh
shell 16 'user',They are:
root , binzai , a1 , a2 , a5 , ay12 , user1 ,

现在看不懂的是 这句BASH_N="$BASH_N`grep '/bin/bash' /etc/passwd | head -$i | tail -1 | cut -d: -f1`,"
BASH_N=$BASH_N???? 为什么这样表达呢,请原谅小弟是菜鸟,之前没有系统学习过编程

小弟试过了,如果改成 BASH_N=`grep '/bin/bash' /etc/passwd | head -$i | tail -1 | cut -d: -f1`
echo "${BASH_N},
则一行只 输出一个用户名
root,
binzai,
a1,
a2,
a5,
ay12,
user1,
user2,
展开
 我来答
heptnaol
推荐于2016-09-22 · TA获得超过7263个赞
知道大有可为答主
回答量:7120
采纳率:78%
帮助的人:1844万
展开全部
BASH_N="$BASH_N`grep '/bin/bash' /etc/passwd | head -$i | tail -1 | cut -d: -f1`,"
BASH_N你就理解成一个字符串变量,每一次循环,在后面append上一个用户名
比如在etc/password里登记的用户,使用/bin/bash作为shell的用户有root , binzai , a1 , a2 , a5 , ay12 , user1这么几个人,则每次循环后BASH_N的变化如下:
啥也没有
root
root,binzai
root,binzai,a1
......
你后面的之所以每一行都有回车,是因为使用了echo,echo会自动加一个回车.
浙江启扬智能科技有限公司
2023-06-12 广告
Android和ARM、Linux之间存在密切的联系。Android是一种基于Linux内核的嵌入式智能操作系统,它采用了ARM处理器作为其主要处理器架构。Android的内核和许多应用程序都是基于ARM架构编写的,包括处理器和内存管理器。... 点击进入详情页
本回答由浙江启扬智能科技有限公司提供
wallcopper
2015-05-21 · TA获得超过3447个赞
知道大有可为答主
回答量:1986
采纳率:86%
帮助的人:1822万
展开全部
1、循环中$BASH_N开始是空
BASH_N=空user01,
2、后面递增后
BASH_N=$BASH_N,user02,值就是空user01,user02,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式