【发布时间】:2021-12-02 11:12:37
【问题描述】:
在 bash 脚本中迈出第一步。到目前为止,设法进行了 5/7 练习,卡在最后两个练习中,我找不到解决方法。
这里是请求练习的更好翻译,同样应该使用简单的命令来解决,例如 sed、echo、cat、uniq、tr、grep、wc 等:
编写命令行来显示默认 shell 是您机器上可用的 shell 之一的用户数。当命令执行时,对于每个 shell,我们都会得到如下相同形式的结果:
- 0个用户拥有shell/bin/sh
- 11个用户有shell/bin/bash
- 0个用户拥有shell/usr/bin/sh
- 0个用户拥有shell/usr/bin/bash
@托德
我今天早上做了,你的 grep 重定向输入给了我这个想法。我就是这样做的:
result=$(grep -of <(echo $SHELL) /etc/passwd | uniq -c)count=$(echo $result I awk -F” “ '{print $1}')shell=$(echo $result | awk -F” “'{print $2}')echo $result | while read i; doecho $count utilisateurs ont pour shell $shelldone
【问题讨论】:
-
如果某个登录shell不在
passwd文件中,怎么可能有0个用户。 -
@Jetchisel 可用的登录shell存储在
/etc/shells -
@Aserre,是的,可能是这种情况,但 OP 没有提到该文件或在代码中发布。
-
@Jetchisel 他们说他们刚刚开始编写 bash 脚本,我怀疑他们不知道这个文件
-
然而
/etc/passwd出现在代码中,最好请OP澄清一下。