это сценарий:
#!/bin/bash
usage() {
echo "deploy-nginx.sh --production|--staging"
}
case "$1" in
--staging) NGINX_CONF="conf/nginx-staging"; HOST="staging" ;;
--production) NGINX_CONF="conf/nginx-production"; HOST="production" ;;
*) usage; exit 2;
esac
cat "$NGINX_CONF" | ssh -F conf/ssh_config "$HOST" '
cat - > /tmp/ironscales
sudo cp /etc/nginx/sites-available//tmp/myapp{,-$(date +%Y%m%d-%H%M%S)}
sudo mv /tmp/myapp /etc/nginx/sites-available/myapp
sudo service nginx reload
'
Я понимаю функцию использования, а переключение регистра
, чего я совсем не понимаю, это часть, следующая за cat
Часть, следующая за cat "$NGINX_CONF"
, служит для копирования файла из переменной $NGINX_CONF
на удаленный компьютер с помощью ssh
и выполнения других действий.
cat "$NGINX_CONF" | ssh
открывает файл и направляет его в процесс ssh
, менее эффективный способ позволить оболочке сделать то же самое с
<"$NGINX_CONF" ssh
Партия в одном в кавычках содержатся команды для запуска на удаленном компьютере. ssh
передает свой ввод (то есть содержимое файла) этой команде.
cat - > /tmp/ironscales
перенаправляет стандартный ввод cat
(= ssh
) (-
) в указанный файл