Как вы завершаете исполняемые команды, чтобы они работали в псевдониме или функции?

Я все еще обожаю причуды сценариев оболочки, но я чувствую, что мне становится немного более комфортно с ним.

Я пытался создать псевдоним для создания tar-файла, который мне нужно создавать часто, но он всегда дает мне tar-ошибки. Так же, как тест, я попытался создать простую оболочку, но она не работает:

function eztar(){ if [ -d $1 ] then export QTAR="$1.tar"; tar –cvf ${QTAR} "$1/"; else echo "Missing directory name"; fi } >eztar mydir tar: invalid option -- '' Try `tar --help' or `tar --usage' for more information. 

Опция -cvf в этом случае как-то съедается?

Во всяком случае, вот еще один.

У меня была проблема, когда у Apache закончилась память. Я обнаружил, что слишком много неудачных выходов заставляют семафор заполняться, поэтому, чтобы исправить это, я обнаружил, что мне понравился сценарий, и я попытался заставить его работать в псевдониме. (Кстати, есть ли лучший способ сделать это?) Я думаю, мне нужно включить это в функцию, потому что, когда я проверяю псевдонимы, цикл for расширился до списка текущих семафоров, чего я не хотел.

 alias semfix='eval "for i in `ipcs -s # grep apache # awk '{print $2}'` ; do ipcrm -s $i; done";' 

Я изучаю, что не могу просто создать псевдоним или функцию обертки из всего на Unix!

  • Проблема при попытке простого цикла в bash
  • Прокрутите все файлы в заданном подкаталоге, назовите вывод зацикленным файлом
  • Как сделать сценарий /etc/init.d похожим на запуск в X?
  • Каталоги перечислены дважды
  • Поиск количества времени в определенном номере в файле, где также указан диапазон
  • Сценарий оболочки для записи выбранных полей в одну строку
  • Как работает awk?! ++?
  • Почему этот сценарий не работает?
  • 2 Solutions collect form web for “Как вы завершаете исполняемые команды, чтобы они работали в псевдониме или функции?”

    Нет ничего плохого в вашей первой функции, кроме опечатки.
    Символ перед cvf не является минус- cvf .
    Вы используете std. US 101 клавиатура клавиатуры?

    Взяв это полностью (минус является необязательным для большинства переключателей tar), и функция работает нормально.
    Или же вы можете исправить это с помощью правильного -cvf

    Кроме того, нет необходимости в export
    export приводит к тому, что переменная среды имеет большую настойчивость, чем требуется в такой функции.

    Я предлагаю вам ознакомиться с руководством Advanced Bash-Scripting Guide
    Посмотрите на let , local и export .
    Посмотрите, как они меняются, когда использовать тот или иной.

    Да, вы должны попробовать и переписать второй как функцию.
    Менее вложенные цитаты и трубопроводы, в процессе обучения, облегчат выполнение функций записи и псевдонимов.

    Один лайнер приходит позже 🙂

    Попробуйте использовать tar без знака минус, т.е. просто tar cfv

    Это оригинальный, теперь нестандартный формат.

    Interesting Posts

    Автоматический запуск сценария при подключении Wifi-карты (udev)

    Как раскрыть скрытые файлы в списках файлов `ls`?

    Получить имя текущего терминала

    Получите вино, чтобы оценить системные настройки fontconfig (подпиксельное сглаживание, небольшое намек)

    Создание виртуального интерфейса для постоянного доступа к интерфейсу DHCP с тем же ip

    Как я могу сообщить mailx о новой почте?

    Как передать параметры псевдониму?

    Vi заменит искомую строку

    Установка: Зачем загружать последний загрузчик?

    Как отобразить разрешения нового файла в строке состояния редактора Vim?

    Как преобразовать образ .cue / .bin (cdr tracks) в один файл .iso?

    Предупреждение о смещении раздела при установке Debian

    Проверка того, что $ ((a * b)) оценивается в моей собственной оболочке

    Измените ядро ​​в загруженном Ubuntu Image

    Как предотвратить использование Qt / GTK-приложения (Калибр) для использования цветов, определенных в .Xresources?

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