Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux脚本(显示用户和最终帮助)_Linux_Bash - Fatal编程技术网

Linux脚本(显示用户和最终帮助)

Linux脚本(显示用户和最终帮助),linux,bash,Linux,Bash,我已经在这个项目上工作了一段时间了,我一辈子都不明白为什么这个项目不起作用,如果你能帮忙的话,那就太好了!!!请记住它是在linux中 #!/bin/bash echo "Welcome what would you like to do? you can:" echo "Display a list of current users (L)" echo "Display a list of files including hidden ones (H)" echo "Display a

我已经在这个项目上工作了一段时间了,我一辈子都不明白为什么这个项目不起作用,如果你能帮忙的话,那就太好了!!!请记住它是在linux中

#!/bin/bash

echo "Welcome what would you like to do? you can:"

echo "Display a list of current users (L)"

echo "Display a list of files including hidden ones (H)"

echo "Display a calender for current month (C)"

echo "Quit the program (Q)"

echo "Remember to use caps"

while read option

do

   case $option in

      L)      $ awk -F':' '{ print $1}' /etc/passwd ;;

      H)      ls -a ;;

      C)      cal ;;

      *)      echo "Unknown option": $option ;;

      Q)      echo "good bye" 

             ;;

    esac

done

首先,在您呼叫
awk
之前,有一个虚假的
$
标志-请使用此标志:

...
  L)      awk -F':' '{ print $1}' /etc/passwd ;;
...
其次,您需要将
*
案例移动到
案例
条件的末尾,否则将永远不会调用
Q
,因为它已被
*
捕获

第三,在您的
Q
案例中,您正在打印
再见
消息,但是您的脚本将继续运行-您需要
退出脚本:

 Q)      echo "good bye" 
         exit
         ;;

就像Andreas所说的:但是解析passwd也不会告诉您系统中当前活动的用户

这是一个修改过的脚本

#!/bin/bash

echo "Welcome what would you like to do? you can:"

echo "Display a list of all users (L)"

echo "Display a lst of current logged in users (U)"

echo "Display a list of files including hidden ones (H)"

echo "Display a calender for current month (C)"

echo "Quit the program (Q)"

echo "Remember to use caps"

while read option

do

   case $option in

      L)      awk -F':' '{ print $1}' /etc/passwd ;;

      U)      who ;;

      H)      ls -a ;;

      C)      cal ;;

      Q)      echo "good bye"
              exit ;;

      *)      echo "Unknown option": $option ;;

    esac

done

这怎么不起作用呢?预期结果/实际结果如何?为什么经常被否决?有人想留下评论吗?为什么?这是一个问题-脚本有一些问题。有一个简单的答案……投票。我认为这是一个合理的问题,可能被否决了,因为“不起作用”是一个很糟糕的问题描述。@Xxbat99xX你应该改进的一件事是,当你提问时,你只说“为什么不起作用”,请加上你的程序的预期结果和实际结果,并描述什么不起作用。另请看。仅仅因为某个随机的***洞否决了你的完全合理的建议,就给你投票answer@TransactCharlie谢谢;)我真的很想知道否决投票的原因,但这些事情时有发生…+1仔细阅读OPs代码,其中显示“显示当前用户列表(L)”,您可能希望在Q)选项的末尾添加“退出”。)(请参见@Andreas answer)