Поиск способа перенести команду и дать ее собственную оболочку

Я работаю с командной строкой, выполняющей те же команды много раз вручную после того же шаблона. Теперь я ищу способ упростить его, просто введя команду только однажды.

Позволяет смотрят на нормальный пример докера:

docker ps
docker ps -a
docker ps -l
docker stop x 
docker start x 
docker start y 
docker logs y
docker logs -f z

Этот пример также относится к значительно большему количеству команд, таких как мерзавец, варево, большой глоток, gcloud.

Теперь я ищу своего рода оболочка обертки команды, которая позволяет мне писать with docker это будет переносить любую команду в оболочку nested/sub.

Затем я не должен предварительно ожидать docker команда и просто звонит:

>ps
# does docker ps and displays result 
>stop x
# prepends docker so docker stop x is actually executed   
CTRL+C # to exit the command wrapper 

Что-то вроде этого уже существует? Я гуглил для него, но не мог описать его правильно следовательно, я ничего не нашел.

3
задан 2 February 2015 в 15:07
2 ответа

Вы также можете определить функцию самостоятельно и включить ее в свой . bash_profile или аналогичный:

function with {
    echo -n "$1> "
    while read input
    do
        if [[ $input == "exit" ]]
        then
            break
        fi
        eval "$1 $input"
        echo -n "$1> "
    done
    echo
}

Пример использования:

user@host $ with git
git> status
# On branch master
nothing to commit (working directory clean)
git> exit

user@host $

РЕДАКТИРОВАТЬ: Эта функция не выполняет санитарную обработку ввода или что-то еще, поэтому используйте ее на свой страх и риск и т. д.

4
ответ дан 3 December 2019 в 05:42

Для этого вы можете написать bash или другой сценарий оболочки. Простая альтернатива, которая почти так же хороша, - это просто определить короткие псевдонимы и добавить их, например

alias d=docker
alias g=gcloud

и так далее. Затем запустите

d ps
d ps -a

и так далее, что вряд ли будет труднее, чем просто набор команд.

1
ответ дан 3 December 2019 в 05:42

Теги

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