Я работаю с командной строкой, выполняющей те же команды много раз вручную после того же шаблона. Теперь я ищу способ упростить его, просто введя команду только однажды.
Позволяет смотрят на нормальный пример докера:
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
Что-то вроде этого уже существует? Я гуглил для него, но не мог описать его правильно следовательно, я ничего не нашел.
Вы также можете определить функцию самостоятельно и включить ее в свой . 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 $
РЕДАКТИРОВАТЬ: Эта функция не выполняет санитарную обработку ввода или что-то еще, поэтому используйте ее на свой страх и риск и т. д.
Для этого вы можете написать bash или другой сценарий оболочки. Простая альтернатива, которая почти так же хороша, - это просто определить короткие псевдонимы и добавить их, например
alias d=docker
alias g=gcloud
и так далее. Затем запустите
d ps
d ps -a
и так далее, что вряд ли будет труднее, чем просто набор команд.