
名前に過去5日の日付スタンプを含む5つのファイルを生成したいと思います。変数に表示される日付コマンドをどのようにキャプチャしますかFILE_DATE
?
for i in {1..5};
do
#FILE_DATE=$(date --date="$i days ago" + "%m%d%Y") # Yields Try 'date --help' for more information
#FILE_DATE=(date --date="$i days ago" + "%m%d%Y") # Yields Foobardate
#FILE_DATE=`date --date="$i days ago" + "%m%d%Y"` # Yields Try 'date --help' for more information
#FILE_DATE="date --date="$i days ago" + "%m%d%Y"" # Yields days command not found
echo "Foobar$FILE_DATE"
done
希望の出力
Foobar07172017
Foobar07162017
Foobar07152017
Foobar07142017
Foobar07132017
答え1
どのオペレーティングシステムを使用していますか?これはCentOS 7で動作しますが、引用符なしで他のエラーが発生します。
#!/bin/bash
#
for i in {1..5}; do
file_date=$(date --date="$i days ago" "+ %m%d%Y") # "+ %m%d%Y" Creates a space before the date
echo "Foobar${file_date:1}" # Removes space before the date
done
または
#!/bin/bash
#
for i in {1..5}; do
file_date=$(date --date="$i days ago" "+%m%d%Y")
echo "Foobar$file_date"
done
どちらも目的の結果を生成します。
[root@JBLGSMR002 ~]# ./test.sh
Foobar07172017
Foobar07162017
Foobar07152017
Foobar07142017
Foobar07132017