コマンドの出力を変数に入れたいです。私が知っている限り、次のいずれかを使用する必要があります。
variable=$(command)
variable=`command`
私の観点からは、以下が機能するはずです。
for i in $(ls -1); do
modTime=$(/usr/gnu/bin/date -r $i +$F)
echo $modTime
done
私もバックティックを試しました。重要なのはbashシェルです。
答え1
まず、決して解析しないでくださいls
。出力は人間が読めると見なされ、構文解析用には設計されていません。以下のように単純にワイルドカードを繰り返す方が良いです。
実際の問題は$F
代わりに使用していることです%F
。前者は空の変数なので、dateコマンドの出力はありません。したがって、これは修正されたコマンドです。
for i in ./*; do
modTime="$(/usr/gnu/bin/date -r "$i" +%F)"
echo "$modTime"
done
ただし、単一のfind
コマンドで目的の操作を実行する必要があります。
find ./ -maxdepth 1 -printf "%TY-%Tm-%Td\n"