[РЕШЕНО] Вопрос по переменным...

bash, perl, python и прочие интерпретируемые скрипты

Модератор: Gen1us2k

Ответить
Аватара пользователя
Gen1us2k
Модератор
Модератор
Сообщения: 771
Зарегистрирован: 02 мар 2010, 16:13

[РЕШЕНО] Вопрос по переменным...

Сообщение Gen1us2k » 03 мар 2010, 16:00

есть скриптик, который я юзаю для дампа мускульных баз

Код: Выделить всё

#!/bin/sh 
# 

echo "Дождитесь завершения выполнения скрипта" 
#Объявление переменных дат для дальнейшего формирования папок согласно дате бэкапа 
current_year=`date '+%Y'` 
current_month=`date '+%m'` 
current_date=`date '+%d'` 

#Определение переменных - реквизитов доступа к базе данных 
db_user="db_user" 
db_password="db_pass" 

#Определение пути к исполняемому бинарному файлу mysqldump 
mysqldump="/usr/bin/mysqldump" 
# Определение директории сохранения бэкапа на день выполнения скрипта 
backup_dir="/путь/до/папки/${current_year}/${current_month}/${current_date}" 
#Выполнение дампа баз 
${mysqldump} -u$db_user -p$db_password db1 | gzip > ${backup_dir}/db1.sql.gz 
${mysqldump} -u$db_user -p$db_password db2 | gzip > ${backup_dir}/db2.sql.gz 

echo "Выполнение скрипта завершено\n" 
echo "Листинг директории $backup_dir , где при удачном выполнении скрипта должны содержаться файлы дампов баз:" 
ls -lah $backup_dir
собственно вопрос... в чом разница в записи переменных
${mysqldump} и $backup_dir кроме того что это разные переменные. различия есть, записано как $mysqldump и ${mysqldump}
Последний раз редактировалось Gen1us2k 05 мар 2010, 17:46, всего редактировалось 1 раз.
Изображение
Home: Windows Heaven
Home: Debian 6
For Servers: Debian || RHEL Based || Gentoo || FreeBSD
Аватара пользователя
Raven
Бородатый сис
Бородатый сис
Сообщения: 2800
Зарегистрирован: 03 мар 2010, 15:12
ОС: RHEL 8
Откуда: Из серверной

Re: вопрос по переменным...

Сообщение Raven » 05 мар 2010, 17:06

Для того, чтобы имя переменной не сливалось со строкой, следующей за именем переменной, используются фигурные скобки.
Пусть a=/mnt/lab/asu/
тогда

Код: Выделить всё

cat /mnt/lab/asu/prim
и

Код: Выделить всё

cat ${a}prim
равноценны (т.е. "cat" выдаст на экран содержимое одного и того же файла).
Если также предположить, что в системе есть переменная "prim" и "prim=dir" , то команда

Код: Выделить всё

echo ${a}$prim
выдаст на экран

Код: Выделить всё

/mnt/lab/asu/dir
то есть можно сказать что все что в ${переменная} таких ковычках то все будет выводиться ЯВНО в виде строки , а в случае $переменная то содердимое переменной будет анализироваться ещё и на содержание других переменных что и указано в примере

Спасибо ADI за предоставленную информацию :)
Я не злопамятный, я просто часто ковыряю логи
Аватара пользователя
Gen1us2k
Модератор
Модератор
Сообщения: 771
Зарегистрирован: 02 мар 2010, 16:13

Re: вопрос по переменным...

Сообщение Gen1us2k » 05 мар 2010, 17:45

Raven
я догадывался! :) спасибо ADI и тебе Raven
Изображение
Home: Windows Heaven
Home: Debian 6
For Servers: Debian || RHEL Based || Gentoo || FreeBSD
Ответить

Вернуться в «Скрипты»