В некоторых дистрибутиве I Linux, которые я проверил (E, G, Ubuntu 14.04), упакованный Cal
исходит от BSD, а не GNU Cereutils. Версия BSD, похоже, не принимает дни в качестве параметра; только месяцы и годы. Версия Ubuntu имеет a -h-yyyy-mm-dd, но это, кажется, не помогает.
Вместо этого я бы использовал дату
утилиту. Предполагая, что GNU CORETILS под Linux я думаю, что я бы переписал свой скрипт что-то вроде:
#!/bin/bash
day=$((10#$1))
month=$((10#$2))
year=$((10#$3))
if date -d $year-$month-$day > /dev/null 2>&1; then
# cal $month $year
echo "This is a valid date"
else
echo "This is an invalid date"
fi
Примечания:
BC BC
BC
Процесс для каждого параметра , если
Условное выражение. Если
работает путем проверки кодов выхода процесса. Обычно используются [
[ или [[[ [[[
[[[
исполняемых файлов, но нет причин, по которой другие программы могут быть использованы, если они выходят с полезными кодами выхода CAL
вывод для правильных дат или нет. Если вы сделаете, просто растресментируйте строку
. Похоже, вы используете Perf Script
, который дает след Perf Record или перечислять все необработанные события от Perf Record. Попробуйте сделать Perf Report
, чтобы увидеть числа вывода Perf