Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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 为什么可以';我不能运行shell脚本来列出用户吗?_Linux_Shell_Unix - Fatal编程技术网

Linux 为什么可以';我不能运行shell脚本来列出用户吗?

Linux 为什么可以';我不能运行shell脚本来列出用户吗?,linux,shell,unix,Linux,Shell,Unix,这是我的shell脚本。问题是那个节目是个错误。 错误为-->用户:未找到命令 请按现在的方式给我解决方案friends代码我看到您没有将awk | sort命令的输出分配给变量(可能您想使用“而不是”?) 这项工作: users='awk '{print $1}' /etc/passwd | sort -u' for user in $users do echo " - $user" done 虽然您应该知道,/etc/passwd不是用空格分隔的,所以awk'{print

这是我的shell脚本。问题是那个节目是个错误。 错误为-->
用户:未找到命令

请按现在的方式给我解决方案friends

代码我看到您没有将
awk | sort
命令的输出分配给变量(可能您想使用“而不是”?)

这项工作:

users='awk  '{print $1}' /etc/passwd | sort -u'

for user in $users
 do
      echo " - $user"
done
虽然您应该知道,
/etc/passwd
不是用空格分隔的,所以
awk'{print$1}'
不会给您用户名(这可能是您想要的)

编辑:

根据@对您的问题的评论:如果您将此代码保存在一个文件中(比如
/tmp/myscript.bash
)以运行它,您必须键入一个终端:

#!/bin/bash

users=$(awk  '{print $1}' /etc/passwd | sort -u)

for user in $users
do
      echo " - $user"
done

或者,因为它以
#开头/bin/bash
(阅读)您可以使其可执行(使用
chmodu+x/tmp/myscript.bash
),然后调用它,只需键入
/tmp/myscript.bash
。您也可以将它保存在
PATH
目录中(键入
echo$PATH
查看它们是哪一个),使其可执行,然后您就可以从任何地方调用它,但我并不建议您这样做,因为如果您不小心,可能会覆盖有趣的系统命令。例如,假设您使用不幸的名称调用脚本
ls
,将其保存在
$PATH
的第一个目录中(在我的示例中为
/usr/local/sbin
),每次键入
ls
,您将不会列出目录,而是调用您的脚本。。。这是不好的。

按照现在的代码方式,我看到您没有将
awk | sort
命令的输出分配给变量(可能您想使用“而不是”?)

这项工作:

users='awk  '{print $1}' /etc/passwd | sort -u'

for user in $users
 do
      echo " - $user"
done
虽然您应该知道,
/etc/passwd
不是用空格分隔的,所以
awk'{print$1}'
不会给您用户名(这可能是您想要的)

编辑:

根据@对您的问题的评论:如果您将此代码保存在一个文件中(比如
/tmp/myscript.bash
)以运行它,您必须键入一个终端:

#!/bin/bash

users=$(awk  '{print $1}' /etc/passwd | sort -u)

for user in $users
do
      echo " - $user"
done

或者,因为它以
#开头/bin/bash
(阅读)您可以使其可执行(使用
chmodu+x/tmp/myscript.bash
),然后调用它,只需键入
/tmp/myscript.bash
。您也可以将它保存在
PATH
目录中(键入
echo$PATH
查看它们是哪一个),使其可执行,然后您就可以从任何地方调用它,但我并不建议您这样做,因为如果您不小心,可能会覆盖有趣的系统命令。例如,假设您使用不幸的名称调用脚本
ls
,将其保存在
$PATH
的第一个目录中(在我的示例中为
/usr/local/sbin
),每次键入
ls
,您将不会列出目录,而是调用您的脚本。。。这是不好的。

按照现在的代码方式,我看到您没有将
awk | sort
命令的输出分配给变量(可能您想使用“而不是”?)

这项工作:

users='awk  '{print $1}' /etc/passwd | sort -u'

for user in $users
 do
      echo " - $user"
done
虽然您应该知道,
/etc/passwd
不是用空格分隔的,所以
awk'{print$1}'
不会给您用户名(这可能是您想要的)

编辑:

根据@对您的问题的评论:如果您将此代码保存在一个文件中(比如
/tmp/myscript.bash
)以运行它,您必须键入一个终端:

#!/bin/bash

users=$(awk  '{print $1}' /etc/passwd | sort -u)

for user in $users
do
      echo " - $user"
done

或者,因为它以
#开头/bin/bash
(阅读)您可以使其可执行(使用
chmodu+x/tmp/myscript.bash
),然后调用它,只需键入
/tmp/myscript.bash
。您也可以将它保存在
PATH
目录中(键入
echo$PATH
查看它们是哪一个),使其可执行,然后您就可以从任何地方调用它,但我并不建议您这样做,因为如果您不小心,可能会覆盖有趣的系统命令。例如,假设您使用不幸的名称调用脚本
ls
,将其保存在
$PATH
的第一个目录中(在我的示例中为
/usr/local/sbin
),每次键入
ls
,您将不会列出目录,而是调用您的脚本。。。这是不好的。

按照现在的代码方式,我看到您没有将
awk | sort
命令的输出分配给变量(可能您想使用“而不是”?)

这项工作:

users='awk  '{print $1}' /etc/passwd | sort -u'

for user in $users
 do
      echo " - $user"
done
虽然您应该知道,
/etc/passwd
不是用空格分隔的,所以
awk'{print$1}'
不会给您用户名(这可能是您想要的)

编辑:

根据@对您的问题的评论:如果您将此代码保存在一个文件中(比如
/tmp/myscript.bash
)以运行它,您必须键入一个终端:

#!/bin/bash

users=$(awk  '{print $1}' /etc/passwd | sort -u)

for user in $users
do
      echo " - $user"
done

或者,因为它以
#开头/bin/bash
(阅读)您可以使其可执行(使用
chmodu+x/tmp/myscript.bash
),然后调用它,只需键入
/tmp/myscript.bash
。您也可以将它保存在
PATH
目录中(键入
echo$PATH
查看它们是哪一个),使其可执行,然后您就可以从任何地方调用它,但我并不建议您这样做,因为如果您不小心,可能会覆盖有趣的系统命令。例如,假设您使用不幸的名称调用脚本
ls
,将其保存在
$PATH
的第一个目录中(在我的示例中为
/usr/local/sbin
),每次键入
ls
,您将不会列出目录,而是调用您的脚本。。。这很糟糕。

你把脚本放在哪里了?它在你的道路上吗?它被标记为可执行文件吗?你把脚本放在哪里了?它在你的道路上吗?它被标记为可执行文件了吗?你在哪里找到的