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

11

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

Спасибо

волк
источник

Ответы:

12

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

alias -- -=popd

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

usr@srv % alias -- -=echo
usr@srv % - test
test
binfalse
источник
Спасибо, работает отлично. Что именно --делать?
Вольф
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 "$@"; }
user1686
источник
что такое $@?
Lazer
2
@Lazer: в sh и bash $@раскрывает все аргументы, переданные функции или скрипту. Без кавычек это работает так же, как $*. Когда в двойных кавычках, однако, расширяется точно такое же слово , как изначально данные, без какого - либо дополнительного расщепления.
user1686
@Lazer: $@расширяет все параметры, передаваемые функции (эквивалентно "$1" "$2" ...). Для получения дополнительной информации, выполните man bashи найдите специальные параметры.
Андре Парамес