Как использовать - как псевдоним?


11

Когда я использовал openSUSE 11.3, он уже имел несколько настроенных псевдонимов. Два, которые я часто использовал, были +для pushd .и -для popd. Теперь о Debian, я не могу понять, как создать второй. alias -=popdпытается прочитать -=как параметр команды для псевдонима. Я попытался поместить в него кавычки (одинарные и двойные) и поставить перед ним обратную косую черту, но я просто продолжаю получать сообщения об ошибках. Какие-либо предложения?

Спасибо

Ответы:


12

попробуй это:

alias -- -=popd

работал хотя бы на меня

usr@srv % alias -- -=echo
usr@srv % - test
test

Спасибо, работает отлично. Что именно --делать?
Вольф

4
@Wolf: для большинства команд --отмечает конец параметров; все после это аргументы. Например, logger foo -x barбудет регистрировать «foo bar» и рассматривать -xкак опцию, в то время как logger -- foo -x barбудет обрабатывать его как обычное слово в сообщении «foo -x bar».
user1686

1
--Указывает , что больше опций не следуют в командной строке, следующие -«s не интерпретируются как опции. Так что это позволяет вам catфайлы, которые начинаются с -;-)
binfalse

@ Grawity и @binfalse: Спасибо за объяснение, это очень полезно! Очень приятно знать.
Вольф

7

В bashвы можете создать функции, названные так:

+() { pushd "$@"; }
-() { popd "$@"; }

что такое $@?
Lazer

2
@Lazer: в sh и bash $@раскрывает все аргументы, переданные функции или скрипту. Без кавычек это работает так же, как $*. Когда в двойных кавычках, однако, расширяется точно такое же слово , как изначально данные, без какого - либо дополнительного расщепления.
user1686

@Lazer: $@расширяет все параметры, передаваемые функции (эквивалентно "$1" "$2" ...). Для получения дополнительной информации, выполните man bashи найдите специальные параметры.
Андре Парамес
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.