Что происходит с аргументом в псевдониме после его использования один раз?

Почему это только print arg out?

 $ alias test="echo $1 $1 $1" $ test arg arg 

Это находится в GNU bash, версия 4.2.25 (1) -release (x86_64-pc-linux-gnu).

2 Solutions collect form web for “Что происходит с аргументом в псевдониме после его использования один раз?”

Перечислите псевдонимы с помощью команды alias после того, как вы определили этот псевдоним, и вы это четко поймете:

 alias test="echo $1 $1 $1" alias 

Вывод:

 alias test='echo ' 

Он просто расширяется до строки только с переменными, которые были определены во время выполнения. Так, например, это работает (Vvariable MY_VAR определяется):

 MY_VAR="foo" alias test="echo $MY_VAR $MY_VAR $MY_VAR" alias 

Вывод:

 alias test='echo foo foo foo' 

Вы можете заменить его функцией

 function test() { echo $1 $1 $1 } 

Я сомневаюсь, что alias поддерживает $ 1, $ 2, … Его помощь держится молчанием.

Поэтому я считаю, что ваш командный test arg расширяется, как echo $1 $1 $1 arg . Где $ 1 пуст, и вы получаете свой результат.

Еще один пример:

 $ alias test='echo $1 $1 $1' $ test arg1 arg2 arg1 arg2 

В приведенном выше примере выполняется test=... псевдонима test=... get, а чистый эффект – это то, что мы имеем псевдоним для команды echo . Мы можем увидеть этот эффект, когда мы запускаем командный test arg1 arg2 . Все, что мы делаем, это запустить echo и передать ему строки arg1 и arg2 .

 $ echo arg1 arg2 
  • Автоматически помещать псевдоним в ~ / .bashrc или ~ / .zshrc
  • Разница между псевдонимом в zsh и псевдонимом в bash
  • Как окончательно удалить псевдоним из моей оболочки
  • Установка временных псевдонимов bash при входе в папку
  • су и смешение алиасов
  • Изменить имя команды в Linux
  • Начать bash с помощью определенного набора псевдонимов
  • Разрешить вложенные псевдонимы в исходные команды
  • какие инструменты я могу использовать, чтобы быстро показать / скрыть некоторые напоминания о себе?
  • Как предотвратить преждевременное выполнение $ () при создании псевдонима
  • Bash - "/" - это каталог
  • Interesting Posts

    Как переключаться между различными конфигурациями Linux?

    создание хостов ssh глобально для всех пользователей на компьютере

    Передача аргументов из файла в сценарий bash

    Ссылка 2 существующих файла

    Вимм-режим Vim для системного буфера обмена?

    Gentoo Linux: включение эквалайзера mbeq для ALSA прерывает звук приложения, но работает при тестировании с помощью теста колонок

    Подпись ошибки ответа AWS XML не соответствует

    Проверять службы, запущенные на сервере, и перезапускать их, если они были остановлены?

    Что недоступно из пользовательского пространства?

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

    Могу ли я использовать ярлыки внутри репозитория для yum?

    формат часового пояса в / etc / timezone для debian7

    Мне нужно удалить. в моих данных

    Что предотвращает использование опции «nullok» по умолчанию для PH-конфигурации RHEL7 для пустых паролей?

    Как bc отличается от постоянного тока?

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