Linux 执行ls命令并将输出存储在变量中

Linux 执行ls命令并将输出存储在变量中,linux,shell,Linux,Shell,命令是:- ls-ltr|grep "$(date +'%b %e')"|cut -d' ' -f14 out将给出今天创建的文件名。 我需要知道如何在单个变量中存储单个文件。 例如,如果我在输出中有两个文件,并且我想将这两个文件存储在两个不同的变量中。请帮我怎么做 如果您确定您的文件名不包含空格字符,您可以这样做 todayfiles=( $(stat -c "%y@%n" * | grep "^$(date "+%F")" | cut -d@ -f2-) ) mapfile -t to

命令是:-

ls-ltr|grep "$(date  +'%b %e')"|cut -d' ' -f14
out将给出今天创建的文件名。 我需要知道如何在单个变量中存储单个文件。 例如,如果我在输出中有两个文件,并且我想将这两个文件存储在两个不同的变量中。请帮我怎么做

如果您确定您的文件名不包含空格字符,您可以这样做

todayfiles=( $(stat -c "%y@%n" * | grep "^$(date "+%F")" | cut -d@ -f2-) )
mapfile -t todayfiles < <(stat -c "%y@%n" * | grep "^$(date "+%F")" | cut -d@ -f2-)
如果文件名可能包含空格或制表符,但您确定它们不包含换行符,则可以这样做

todayfiles=( $(stat -c "%y@%n" * | grep "^$(date "+%F")" | cut -d@ -f2-) )
mapfile -t todayfiles < <(stat -c "%y@%n" * | grep "^$(date "+%F")" | cut -d@ -f2-)
然后使用以下命令迭代今天的文件:

for f in "${todayfiles[@]}"; do ...; done

你的意思是
var1=$(你可能会问这个问题,但如果你问了,就删除这个。为什么要把它们放在不同的变量而不是数组中?好的,很好,这很管用!!谢谢:)