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

У меня была та же проблема, и моя установка была правильной, iOS> = 9.0, цель была добавлена.

Проблема заключалась в индексировании XCode, которое заняло некоторое время (около 1 часа), после того как индексирование было выполнено, кнопка записи становится активной.

276
задан codeforester 15 October 2018 в 17:50
поделиться

5 ответов

Вы нашли способ: создать функцию вместо псевдонима. Оболочка C имеет механизм для передачи аргументов псевдонимам, но bash и оболочка Korn нет, потому что механизм функций более гибкий и предлагает те же возможности.

164
ответ дан 23 November 2019 в 02:06
поделиться

На самом деле вы не можете делать то, что хотите, с псевдонимами Bash, поскольку псевдонимы статичны. Вместо этого используйте созданную вами функцию.

Дополнительные сведения см. Здесь: http://www.mactips.org/archives/2008/01/01/increase-productivity-with-bash-aliases-and -функции / . (Да, я знаю, что это mactips.org, но это о Bash, так что не беспокойтесь.)

2
ответ дан 23 November 2019 в 02:06
поделиться

В ksh нельзя, но можно в csh.

alias mkcd 'mkdir \!^; cd \!^1'

В ksh можно использовать функцию. Но если вы действительно хотите использовать псевдоним:

alias mkcd='_(){ mkdir $1; cd $1; }; _'
54
ответ дан 23 November 2019 в 02:06
поделиться

Процитируем страницу руководства bash:

Нет механизма для использования аргументов в тексте замены. Если необходимы аргументы, следует использовать функцию оболочки (см. ФУНКЦИИ ниже).

Похоже, вы сами ответили на свой вопрос - используйте функцию вместо псевдонима

16
ответ дан 23 November 2019 в 02:06
поделиться

Это работает в ksh:

$ alias -x mkcd="mkdir \$dirname; cd \$dirname;"
$ alias mkcd
mkcd='mkdir $dirname; cd $dirname;'
$ dirname=aaa 
$ pwd
/tmp   
$ mkcd
$ pwd
/tmp/aaa

Параметр «-x» делает псевдоним «экспортированным» - псевдоним отображается в подоболочках.

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

1
ответ дан 23 November 2019 в 02:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: