명령의 출력을 변수에 넣고 싶습니다. 내가 아는 한 다음 중 하나를 사용해야 합니다.
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"