[英]Why can't I use 'sudo su' within a shell script? How to make a shell script run with sudo automatically
[英]Why can't I run my shell script to list users?
users='awk '{print $1}' /etc/passwd | sort -u'
for user in $users
do
echo " - $user"
done
这是我的shell脚本。 问题是演出有误。 错误是---> users: command not found
请给我解决方法
现在,按照代码的方式,我看到您没有将awk|sort
命令的输出分配给变量(也许您想使用`代替'?)
这有效:
#!/bin/bash
users=$(awk '{print $1}' /etc/passwd | sort -u)
for user in $users
do
echo " - $user"
done
尽管您应该知道/etc/passwd
不是用空格隔开的,所以awk '{print $1}'
不会为您提供用户名(也许正是您想要的名称)
编辑:
按照@ Andy Lester对您的问题的评论:如果将此代码保存在文件中(例如/tmp/myscript.bash
)运行,则必须在终端中输入:
/bin/bash /tmp/myscript.bash
或者,因为它以#!/bin/bash
开头(请在此处阅读),您可以使其可执行(使用chmod u+x /tmp/myscript.bash
),然后调用它,只需键入/tmp/myscript.bash
。 您也可以将其保存在PATH
目录之一中(键入echo $PATH
以查看它们是哪个),然后使其可以在任何地方调用,但是我不建议这样做,因为您如果您不小心,可能会最终覆盖多汁系统的命令。 例如,假设您使用不幸的名称ls
调用脚本,将其保存在$PATH
的第一个目录中(在我的情况下为/usr/local/sbin
)每次键入ls
,您都不会列出目录,但调用您的脚本...这很糟糕。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.