Linux脚本(显示用户和最终帮助)
我已经在这个项目上工作了一段时间了,我一辈子都不明白为什么这个项目不起作用,如果你能帮忙的话,那就太好了!!!请记住它是在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
#!/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)