Многомесячный просмотр в календаре (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 не беспокоилась об обновлении их за многие годы.

  • Могу ли я использовать встроенный подстановочный знак Zsh для замены использования `find` здесь?
  • Zsh - более интеллектуальная автокоррекция
  • Самый быстрый способ открыть все файлы в каталоге с несколькими расширениями файлов в командной строке
  • Как удалить каждый файл с x в заголовке?
  • Строка состояния экрана для отображения текущей директории для оболочки zsh / bash
  • zsh: изменить правила завершения и перекомпилировать файл .zwc
  • Запуск одной команды за другой в zsh при нажатии Ctrl-C
  • Есть ли более простой способ навигации по моему терминалу, ala tmux?
  • Почему cd добавляет dirs, например pushd?
  • Заполнение вкладки «../» в zsh
  • Могу ли я изменить, как работает автозаполнение zsh?
  • Interesting Posts

    Есть ли какой-то хост. Дополнительный файл для Linux

    Shell: как использовать 2 переменные с условием

    Как установить удаленный общедоступный X-сервер без ущерба для его работы?

    Автоматическое завершение вкладки не работает с apt-get install (kubuntu)

    Нет / proc / sys / fs / binfmt_misc / CLR в моей системе?

    Как добавить новую строку в конец файла?

    Результат diff двух файлов с коммутируемыми линиями говорит, что отсутствует одна и та же строка дважды

    Я хочу, чтобы каталог tar X не включал его родителей

    Идеальная ширина столбцов меньше

    Удаление всех гласных, но первый из набора строк

    С помощью systemd-networkd выполните действие при изменении конфигурации сети

    Используйте настольные динамики через SSH с ноутбука

    Ошибка при загрузке Ubuntu 14.04 – setterm: $ TERM не определен

    Активировать Wi-Fi при запуске 3 запуска

    Что приводит к тому, что вывод xserver становится пустым при переключении на консоль tty?

    Linux и Unix - лучшая ОС в мире.