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

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

Moderator: Gen1us2k

Post Reply
User avatar
Gen1us2k
Модератор
Модератор
Posts: 771
Joined: 02 Mar 2010, 16:13

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

Post by Gen1us2k » 03 Mar 2010, 16:00

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

Code: Select all

#!/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}
Last edited by Gen1us2k on 05 Mar 2010, 17:46, edited 1 time in total.
Image
Home: Windows Heaven
Home: Debian 6
For Servers: Debian || RHEL Based || Gentoo || FreeBSD
User avatar
Raven
Бородатый сис
Бородатый сис
Posts: 2791
Joined: 03 Mar 2010, 15:12
ОС: RHEL 8
Location: Из серверной

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

Post by Raven » 05 Mar 2010, 17:06

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

Code: Select all

cat /mnt/lab/asu/prim
и

Code: Select all

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

Code: Select all

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

Code: Select all

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

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

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

Post by Gen1us2k » 05 Mar 2010, 17:45

Raven
я догадывался! :) спасибо ADI и тебе Raven
Image
Home: Windows Heaven
Home: Debian 6
For Servers: Debian || RHEL Based || Gentoo || FreeBSD
Post Reply