bash Переменная в heredoc (создание файла или другого скрипта из текущего)
Primary tabs
Предположим, у вас есть bash-код вроде:
cat > /etc/init.d/docker-up.sh << EOF
#! /bin/bash
case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
esac
exit 0
EOF
-- при создании файла переменные ( в данном случае $1 и $0) заменятся на свои текущие значения (на момент выполнения основного скрипта), если мы хотим чтобы они попали в неизменном виде в создаваемый с помощью heredoc-нотации файл, нам надо использовать обратный слэш для экранирования, например:
cat > /etc/init.d/docker-up.sh << EOF
#! /bin/bash
case "\$1" in
start)
start
;;
stop)
stop
;;
*)
echo "Usage: \$0 {start|stop|status|restart}"
esac
exit 0
EOF
- Log in to post comments
- 1865 reads