Я пытаюсь создать псевдоним команды sudo shutdown
но в моем .profile
я не могу просто сделать alias "sudo shutdown"="my command"
. Есть ли другой способ псевдонима многопоточных команд в Unix?
5 ответов
Имя псевдонима находится слева, поэтому вы можете использовать любую многопоточную команду справа:
alias my_alias="multi worded command"
РЕДАКТИРОВАТЬ: Однако, если вы действительно хотите иметь псевдонимы имен из нескольких слов - в вашем примере, если вы действительно хотите, чтобы "sudo shutdown" было псевдонимом, вы можете обойти это, используя следующую функцию псевдонимов (в руководстве bash ):
A trailing space in value causes the next word to be checked for
alias substitution when the alias is expanded.
Итак, если вы все еще хотите использовать sudo
с другими командами, но не с shutdown
и если вы можете позволить себе псевдоним shutdown
для чего-то другого, вы можете иметь:
alias sudo='sudo '
alias shutdown="echo nope"
Теперь sudo anything_else
будет работать, как и ожидалось (при условии, что у вас нет псевдонима для anything_else
, но если бы он у вас был, он не сработал бы и раньше); но sudo shutdown
будет эквивалентно sudo echo nope
и оно выведет эту строку.
Используйте функцию:
foo() { if [ "$1" = "bar" ]; then echo "doing something..."; fi; }
Цитировать из: Bash: пробелы в псевдониме
Документация Bash гласит:«Практически для любых целей функции оболочки предпочтительнее псевдонимов». Вот функция оболочки, которая заменяет ls
и приводит к тому, что вывод передается в more
если аргумент состоит из (только) -la
.
ls() {
if [[ $@ == "-la" ]]; then
command ls -la | more
else
command ls "$@"
fi
}
Как однострочник:
ls() { if [[ $@ == "-la" ]]; then command ls -la | more; else command ls "$@"; fi; }
Автоматически выводить трубу:
ls -la
Вы можете использовать тире как обходной путь : alias sudo-shutdown="your command"
Я предпочитаю просто поместить исполняемый файл в /usr /local /bin (убедитесь, что он находится на вашем пути), который затем содержит команды, которые я хочу выполнить. Имя сценария будет командой, которая появляется. не забудьте chmod +x /usr /local /bin /your_script.
Таким образом, сценарий можно назвать «выключение»
Содержимое файла выключения будет:
#!/bin/sh
sudo shutdown
Это открывает целый новый мир. Затем вы можете получить пару команд или даже скрипт:
#!/usr/bin/env python
print "hi"
# more stuff. ....