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

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

Я пытался создать псевдоним для создания 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
  • Список писем по темам
  • дисковое пространство отдельного пользователя
  • Сценарий Bash для запуска виртуальной среды python не выполняется
  • получить день с даты с добавлением 0 в 1 до 9 цифр
  • Добавлять файл, выводить на экран и перенаправлять из stderr все сразу, без тройника
  • Сценарий, вызывающий ifconfig и службу openvpn, не будет работать, но если интерфейс уже работает, он работает
  • Создание и экспорт / импорт переменной с 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

    Какие хэш-алгоритмы я могу использовать в записи passwd / user-password preseed?

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

    Портативные динамики bluetooth не подключаются

    Как получить последний файл из списка файлов в определенном каталоге

    Отправлять электронные сообщения за пределами сети, с сервера за маршрутизатором DNS и переадресацией портов

    Форматирование переменной с плавающей запятой в инструкции SED

    Как сделать компиляцию?

    bashrc PS1: пользовательская подсказка не очистит весь текст

    Могу ли я сделать ; быть более совершенным и не убивать?

    чашки: время ожидания подключения

    Одинарные или двойные скобки и переносимость

    Как синхронизировать каталоги на двух разных внешних жестких дисках?

    Как узнать, используется ли моя веб-камера или нет?

    Как удалить Archlinux?

    Как я могу сделать ssh игнорировать .ssh / config?

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