如何将 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 命令的输出分配给变量的方法。您可以通过下面的反馈部分将您的想法添加到这篇文章中。