网站搜索

如何将 Linux 命令的输出分配给变量


当您运行命令时,它会产生某种输出:程序应该产生的结果或程序执行详细信息的状态/错误消息。有时,您可能希望将命令的输出存储在变量中以便在以后的操作中使用。

在这篇文章中,我们将回顾将 shell 命令的输出分配给变量的不同方法,这对于 shell 脚本编写特别有用。

要将命令的输出存储在变量中,您可以使用以下形式的 shell 命令替换功能:

variable_name=$(command)
variable_name=$(command [option ...] arg1 arg2 ...)
OR
variable_name='command'
variable_name='command [option ...] arg1 arg2 ...'

以下是使用命令替换的几个示例。

在第一个示例中,我们将把 who(显示谁登录了系统)命令的值存储在变量 CURRENT_USERS user 中:

CURRENT_USERS=$(who)

然后我们可以在使用 echo 命令显示的句子中使用该变量,如下所示:

echo -e "The following users are logged on the system:\n\n $CURRENT_USERS"

在上面的命令中:标志 -e 表示解释使用的任何转义序列(例如 \n 表示换行符)。为了避免浪费时间和内存,只需在 echo 命令中执行命令替换,如下所示:

echo -e "The following users are logged on the system:\n\n $(who)"

接下来,使用第二种形式来演示这个概念;我们可以将当前工作目录中的文件总数存储在一个名为 FILES 的变量中,并稍后echo它,如下所示:

FILES=`sudo find . -type f -print | wc -l`
echo "There are $FILES in the current working directory."

现在就这样,在本文中,我们解释了将 shell 命令的输出分配给变量的方法。您可以通过下面的反馈部分将您的想法添加到这篇文章中。