شرح - bash معنى




تاريخ تنسيق YYYY-MM-DD في نص shell (6)

أنت تبحث عن تنسيق التاريخ القياسي ISO 8601 ، لذلك إذا كان لديك تاريخ GNU (أو أي أمر تاريخ أكثر حداثة من عام 1988) ، فما عليك سوى القيام بذلك: $(date -I)

لقد حاولت استخدام $(date) في البرنامج النصي shell bash ، ولكنني أرغب في التاريخ بتنسيق YYYY-MM-DD. كيف يمكنني الحصول على هذا؟


إذا كنت تريد السنة بتنسيق رقمين مثل 17 بدلاً من عام 2017 ، فقم بما يلي:

DATE=`date +%d-%m-%y`

في Bash:

الحصول على السنة-الشهر-اليوم من date

DATE=`date +%Y-%m-%d`

الحصول على سنة - شهر - يوم ساعة: دقيقة: الثانية من date

DATE=`date '+%Y-%m-%d %H:%M:%S'`

يمكن عرض تنسيقات التاريخ المتاحة الأخرى من صفحات التاريخ الخاصة بالرجل :

man date

مع باش الأخيرة (الإصدار ≥ 4.2) ، يمكنك استخدام %(strftime_format)T المدمج مع تنسيق معدل %(strftime_format)T :

$ printf '%(%Y-%m-%d)T\n' -1  # Get YYYY-MM-DD (-1 stands for "current time")
2017-11-10
$ printf '%(%F)T\n' -1  # Synonym of the above
2017-11-10
$ printf -v date '%(%F)T' -1  # Capture as var $date

#!/bin/bash -e

x='2018-01-18 10:00:00'
a=$(date -d "$x")
b=$(date -d "$a 10 min" "+%Y-%m-%d %H:%M:%S")
c=$(date -d "$b 10 min" "+%Y-%m-%d %H:%M:%S")
#date -d "$a 30 min" "+%Y-%m-%d %H:%M:%S"

echo Entered Date is $x
echo Second Date is $b
echo Third Date is $c

هنا س هو تاريخ العينة المستخدمة ، ثم يعرض مثال على كل من تنسيق البيانات وكذلك الحصول على تواريخ 10 دقائق أكثر من التاريخ الحالي.


date -d '1 hour ago' '+%Y-%m-%d'

سيكون الناتج 2015-06-14 .





scripting