История изменений
Исправление kostik87, (текущая версия) :
При запуске скрипта запускается отдельная указанная через шебанг (#!/bin/bash
) оболочка или отдельная копия той, оболочки, которая используется (из которой скрипт вызывается).
Поэтому твой export виден только в рамках этой отдельно запущенной командной оболочки. И после завершения скрипта через его вызов ./index.sh
экспортированных переменных в основной оболочке уже нет.
Экспортировать переменную нужно в случае необходимости её видимости за пределами функций и других скриптах, в которые подключается скрипт из другого файла.
Если ты хочешь, чтобы экспортируемые переменные или функции, описанные в одном файле скрипта были видны в другом, то нужно использовать директиву source
или символ .
, т.е. source script.sh
или . script.sh
в другом скрипте или командной оболочке, текущей командной оболочке, из которой скрипт вызывается.
Только нужно убрать exit
.
DATE=date +%d-%m-%Y-%R:%S:%N
- не понятно зачем, если это планируется использовать в имени файла, то символ двоеточие Linux пропустит, при копировании на файловые системы Windows тоже скопируется, а открыться в Windows не сможет.
Исправление kostik87, :
При запуске скрипта запускается отдельная указанная через шебанг (#!/bin/bash
) оболочка или отдельная копия той, оболочки, которая используется (из которой скрипт вызывается).
Поэтому твой export виден только в рамках этой отдельно запущенной командной оболочки. И после завершения скрипта через его вызов ./index.sh
экспортированных переменных в основной оболочке уже нет.
Экспортировать переменную нужно в случае необходимости её видимости за пределами функций и других скриптах, в которые подключается скрипт из другого файла.
Если ты хочешь, чтобы экспортируемые переменные или функции, описанные в одном файле скрипта были видны в другом, то нужно использовать директиву source
или символ .
, т.е. source script.sh
или . script.sh
в другом скрипте или командной оболочке.
Только нужно убрать exit
.
DATE=date +%d-%m-%Y-%R:%S:%N
- не понятно зачем, если это планируется использовать в имени файла, то символ двоеточие Linux пропустит, при копировании на файловые системы Windows тоже скопируется, а открыться в Windows не сможет.
Исходная версия kostik87, :
При запуске скрипта запускается отдельная указанная через шебанг (#!/bin/bash
) оболочка или отдельная копию той, оболочки, которая используется.
Поэтому твой export виден только в рамках этой отдельно запущенной командной оболочки.
Экспортировать переменную нужно в случае необходимости её видимости за пределами функций.
Если ты хочешь, чтобы экспортируемые переменные или функции, описанные в одном файле скрипта были видны в другом, то нужно использовать директиву source
или символ .
, т.е. source script.sh
или . script.sh
в другом скрипте или командной оболочке.
Только нужно убрать exit
.
DATE=date +%d-%m-%Y-%R:%S:%N
- не понятно зачем, если это планируется использовать в имени файла, то символ двоеточие Linux пропустит, при копировании на файловые системы Windows тоже скопируется, а открыться в Windows не сможет.