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

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

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

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

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

  • Как заставить пользователя нажать Enter для выхода в терминал, чтобы терминал не закрывался автоматически?
  • Unix: проблема с командой cmp
  • Включение двух команд в файл и вывод электронной почты
  • Как я могу отправить несколько параметров одной переменной
  • Как поставить «rm -i» на итерации?
  • Пропустить первую строку (или больше) в CSV-файле, который используется для переименования файлов
  • слияние файлов и получение значений столбцов на основе поля id
  • printf в сценарии оболочки can not do \ x% x
  • Как отслеживать пакеты с MAC-адреса
  • Мониторинг файла журнала и выполнение различных команд в зависимости от разных условий
  • Как избежать повторения команд sed при добавлении сайтов в лак?
  • Предотвращение расширения определенного пространства в переменной
  • Linux и Unix - лучшая ОС в мире.