如何将 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
用户中:
$ 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
,稍后再按如下方式回显它:
$ FILES=`sudo find . -type f -print | wc -l` $ echo "There are $FILES in the current working directory."
到目前为止,在本文中,我们解释了将 shell 命令的输出分配给变量的方法。您可以通过下面的反馈部分向本文添加您的想法。