Представление мультимесяца в календаре (cal) в OS X

bind не доступно в sh. Изменить ~/.inputrc если Вы хотите изменить readline привязку.

4
02.02.2015, 16:34
2 ответа

В OSX нет той же версии утилит, что и в Linux. Общим знаменателем, на который вы можете рассчитывать, является POSIX, который определяет cal , но ни один из его опций.

Существует две общие версии cal на Linux: одна из util-linux (например, на Fedora) и другая из FreeBSD (например, на Ubuntu). Оба варианта имеют опцию -3. OSX основана на FreeBSD, но ее версия является более старой и не имеет опции -3.

Вы можете эмулировать ее с помощью скрипта bash/zsh:

#!/bin/bash
case $# in
  0) month=$(date +%m) year=$(date +%Y);;
  2) month=$1 year=$2;;
  *) echo 1>&2 "Usage: $0 [MONTH YEAR]"; exit 3;;
esac
month=${month#"${month%%[!0]*}"}
if ((month == 1)); then
  previous_month=12 previous_year=$((year-1))
else
  previous_month=$((month-1)) previous_year=$year
fi
if ((month == 12)); then
  next_month=1 next_year=$((year+1))
else
  next_month=$((month+1)) next_year=$year
fi
paste <(cal "$previous_month" "$previous_year") \
      <(cal "$month" "$year") \
      <(cal "$next_month" "$next_year")
5
27.01.2020, 20:52

Я так привык к версии для Linux cal , я перенес версию Debian bsdmainutils , которая включает исполняемые файлы cal и ncal , в формулу Homebrew, которую вы можете найти здесь .

По иронии судьбы, эти утилиты на самом деле взяты из исходного кода FreeBSD, но Apple уже много лет не обновляет их.

1
27.01.2020, 20:52

Теги

Похожие вопросы