Многомесячный просмотр в календаре (cal) в OS X

Я надеюсь запустить некоторые из команд, перечисленных в этой статье , например:

cal -3 

который должен показать мне последний месяц, в этом месяце и в следующем месяце.

Эта команда не работает в OS X.

 $ cal -3 cal: illegal option -- 3 usage: cal [-jy] [[month] year] cal [-j] [-m month] [year] ncal [-Jjpwy] [-s country_code] [[month] year] ncal [-Jeo] [year] 

Есть ли альтернативная форма, которую я мог бы использовать в OS X?

Для справки:

 $ which cal /usr/bin/cal 

а также

 $ man cal 

показывает, что это, вероятно, версия OS X по умолчанию: "...BSD General Commands Manual..."

2 Solutions collect form web for “Многомесячный просмотр в календаре (cal) в OS X”

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

В Linux есть две распространенные версии cal : одна из 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") 

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

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

  • Как открыть новую вкладку в текущем окне терминала gnome?
  • Двойная проверка rm в zsh
  • Команда Echo с оператором AND не выходит
  • История команд в Zsh
  • Как повторно использовать шаблон файла в .gitignore в bash / zsh?
  • Файлы без расширения .sh, не считающиеся для автозаполнения в zsh
  • Режим vi не отображается корректно на новом терминале
  • Команда ZSH запускается в оболочке, но не в скрипте
  • Ctrl-Arrow больше не работает после установки Prezto
  • Передача команды с аргументами скрипту
  • Удалить часть каталога из текущего каталога в zsh
  • Linux и Unix - лучшая ОС в мире.