Существует ли способ исказить мультисформулированную команду в Unix?

Я пытаюсь исказить команду sudo shutdown но в моем .profile Я не могу просто сделать alias "sudo shutdown"="my command". Там другой путь состоит в том, чтобы исказить мультисформулированные команды в Unix?

11
задан 10.02.2011, 23:17

4 ответа

Имя псевдонима на левой стороне, таким образом, у Вас может быть любая мультисформулированная команда в праве:

alias my_alias="multi worded command"

Править: Однако, если Вы действительно хотите иметь названия псевдонимов нескольких слов - в Вашем примере, если Вы действительно хотите "sudo, чтобы завершение работы" было псевдонимом, можно работать вокруг этого при помощи следующей функции псевдонима (в руководстве удара):

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 и это распечатает ту строку.

18
ответ дан 07.12.2019, 12:12

Используйте функцию:

foo() { if [ "$1" = "bar" ]; then echo "doing something..."; fi; }
4
ответ дан 07.12.2019, 12:12

Можно использовать тире в качестве работы вокруг: alias sudo-shutdown="your command"

1
ответ дан 07.12.2019, 12:12

Я предпочитаю просто помещать исполняемый файл в/usr/local/bin (уверены, что это находится в Вашем пути), который затем содержит команды, которые я хочу выполнить. Название сценария было бы командой, которая подходит. убедитесь chmod +x/usr/local/bin/your_script.

Таким образом, сценарий можно было назвать 'завершением работы'

Содержание завершения работы файла было бы:

#!/bin/sh
sudo shutdown

Это открывает совершенно новый мир. У Вас могла затем быть пара команд или даже сценария:

#!/usr/bin/env python
print "hi"
# more stuff. ....
1
ответ дан 07.12.2019, 12:12

Теги

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