0

たとえば、バブルソートを使用して変更時間に関してソートし、 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 に答える