2015-10-17 5 views
0

Я хотел создать псевдоним в терминале (OSX) для этой команды:Terminal Создание псевдонима Ошибка

cal -y | awk -v month="`date +%m`" -v day="`date +%e` " '{m=int((NR-3)/8)*3+1; for (i=0;i<3;i++) {t[i]=substr($0,1+i*22,20) " "; if (m+i==month) sub(day,"\033[0;31m&\033[0m",t[i]);} print t[0],t[1],t[2];}' 

Команда отлично работает, когда я просто запустить его, но когда я пытаюсь создать псевдоним для него это дает мне эту ошибку:

Syntax Error near unexpected token `('

Мой код для создания псевдонима был:

alias caly='cal -y | awk -v month="`date +%m`" -v day="`date +%e` " '{m=int((NR-3)/8)*3+1; for (i=0;i<3;i++) {t[i]=substr($0,1+i*22,20) " "; if (m+i==month) sub(day,"\033[0;31m&\033[0m",t[i]);} print t[0],t[1],t[2];}'' 

я т чтобы использовать escape-последовательности, поскольку ошибкой может быть тот факт, что в команде уже есть отдельные кавычки, прежде чем я поместил одиночные цитаты вокруг всей строки. Это вторая часть кода, я попробовал (который дал мне ту же ошибку):

alias caly='cal -y | awk -v month="`date +%m`" -v day="`date +%e` " \'{m=int((NR-3)/8)*3+1; for (i=0;i<3;i++) {t[i]=substr($0,1+i*22,20) " "; if (m+i==month) sub(day,"\033[0;31m&\033[0m",t[i]);} print t[0],t[1],t[2];}\'' 

Кто-нибудь знает, как я могу исправить эту ошибку? Я довольно новичок в терминале, поэтому любые советы приветствуются!

+0

Что вы на самом деле пытаетесь сделать? –

+0

Итак, в терминале есть функция «cal 2015», которая позволяет просматривать календарь на весь год, но не выделяет текущую дату. Я нашел команду в Интернете, которая на самом деле позволяет вам это сделать, но так как очень долго я хотел создать псевдоним для этой команды и в конечном итоге сохранить этот псевдоним в файле профиля bash. Но команда для создания псевдонима не работала, поэтому мне было интересно, знает ли кто-нибудь, что с ним не так. Благодаря! – NikashS

ответ

0

Ошибка в том, что строка команды, которую вы передаете в alias, которая заключена в одиночные кавычки, сама также содержит одинарные кавычки.

Я сомневаюсь, что есть простое решение, которое все еще использует alias. Похоже, вы подтолкнули выражение, которое перешло к alias слишком далеко. Подумайте о том, чтобы вместо этого добавить свой код в сценарий оболочки и добавить этот скрипт в каталог, находящийся в вашем пути поиска.