0

我想使用例如 bubblesort 对修改时间进行排序,并使用stat -c %y %n filename打印 arr[] 的每个元素。

 #!/bin/sh

 arr=(*)  # * is list of all file and dir names

 newest=${arr[0]}
 for f in "${arr[@]}";
 do 
    if [ $f -nt $newest ]; then 
    newest=$f  
    fi 
 echo "$(stat -c %y %n $newest)"
 done

我想输出类似ls -art --full-time的输出,但当然这更完整。我的问题是为什么它不打印文件名?非常感谢。

4

1 回答 1

2

格式字符串需要是单个参数;使用引号来完成此操作。echo $(stat ...)正如我在评论中指出的那样,您可能也不想在那里使用。

stat -c '%y %n' "$newest"

(从技术上讲,您应该做更多的引用,以防止文件名中包含空格的可能性。)

于 2012-05-11T20:39:35.657 回答