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
- 1309 reads