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

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

Я пытался создать псевдоним для создания 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!

  • Как повторить команду, когда в файле есть определенная строка?
  • ошибка: у Macro% есть незаконное имя (% define)
  • Параметры командной строки с аргументом в сценарии оболочки
  • Как получить свой собственный IP-адрес и сохранить его в переменной в сценарии оболочки?
  • Как переименовать многие файлы из любых последовательных имен файлов?
  • Как дать многомерному массиву значение для каждой ячейки,
  • Команда «cp p2 & 2 &» заставляет Konsole исчезать, это ошибка?
  • запись общего времени выполнения в сценарии bash
  • 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

    Как установить беспроводной маршрутизатор Realtek RTL8723BE на debian?

    Каков интерфейс моего hdd?

    Должна ли опция монтирования nodatacow использоваться в btrfs на сервере базы данных? Отключает ли он контрольные суммы бит-бит?

    Невозможно выполнить двойную загрузку Fedora

    Может ли grep использоваться для поиска файлов с некоторой строкой в ​​их именах?

    Почему скорость невзаимодействующих процессов, зависящих от памяти, зависит от того, сколько работает (и как исправить)?

    Синтаксис командной строки для перенаправления аргументов?

    Отключить vi от перехода к последней посещаемой строке при открытии файла.

    XFCE: режим по умолчанию при подключении второго дисплея

    USB Stick распознан, но не установлен

    Solaris: скрипт для поиска пути физического устройства для всех установленных волоконных карт

    Что такое оконная система?

    Конфигурация режима Bash vi по умолчанию в режиме команд

    mysqld_safe не запускается после установки MySQL 5.7.13 порт в FreeBSD / amd64 10.3 с использованием pkg

    Вернитесь к пути, когда возобновите работу с фона

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