Загадочный вызов переменной в скрипте

Модератор: Модераторы разделов

Ответить
HorekRediskovich
Сообщения: 125

Загадочный вызов переменной в скрипте

Сообщение HorekRediskovich »

Всем привет, собственно встретил на просторах сети рунета скриптик в котором был вызов переменной реализрван вот так (суть таже):

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

#!/bin/bash

BACKUP=/usr/bin/tar
BACKUPPARAM=-cf
BACKUPNAME=backup_home.tar
DIRNAME=/home

$BACKUP $BACKUPPARAM $BACKUPNAME $DIRNAME | gzip > $BACKUPNAME.gz

exit 0

собственно не могу понять как работает подстановка содержимого переменных до пайпа в данном случае?

З.ы. кто хочет меня послать в гугл читать man по bash просьба хотя бы дать подсказку о примерно что искать, ибо про переменные в bash, сидел читал басш гайд не нашёл там ответа на свой вопрос.
Спасибо сказали:
Аватара пользователя
delvin-fil
Сообщения: 135
ОС: Linux → Gentoo

Re: Загадочный вызов переменной в скрипте

Сообщение delvin-fil »

HorekRediskovich писал(а):
10.12.2016 03:50
Всем привет, собственно встретил на просторах сети рунета скриптик в котором был вызов переменной реализрван вот так (суть таже):

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

#!/bin/bash

BACKUP=/usr/bin/tar
BACKUPPARAM=-cf
BACKUPNAME=backup_home.tar
DIRNAME=/home

$BACKUP $BACKUPPARAM $BACKUPNAME $DIRNAME | gzip > $BACKUPNAME.gz

exit 0

собственно не могу понять как работает подстановка содержимого переменных до пайпа в данном случае?

З.ы. кто хочет меня послать в гугл читать man по bash просьба хотя бы дать подсказку о примерно что искать, ибо про переменные в bash, сидел читал басш гайд не нашёл там ответа на свой вопрос.

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

##!/bin/bash

BACKUP=/bin/tar
BACKUPPARAM=-cjvf
BACKUPNAME=backup_home.tar.bz2
DIRNAME=/home/

$BACKUP $BACKUPPARAM $BACKUPNAME $DIRNAME $BACKUPNAME

exit 0

Нет?
Работает и нет "загадочных" переменных - все на своих местах.
import __hello__
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Загадочный вызов переменной в скрипте

Сообщение Bizdelnick »

Скрипт кривой и бессмысленный, а в чём вопрос — не понял.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
HorekRediskovich
Сообщения: 125

Re: Загадочный вызов переменной в скрипте

Сообщение HorekRediskovich »

Bizdelnick писал(а):
10.12.2016 14:22
Скрипт кривой и бессмысленный, а в чём вопрос — не понял.

То что скрипт кривой я понимаю, но лично мне не понятно как происходит вызов переменной в таком случае когда перед ней нет echo, или она не применяется в if или for, там понятно в неё помещают либо из неё достают данные. А просто вызывается, просто если я вот просто создаю переменную и вызываю её то у меня соджерждимое выводится но как бы с матюком от баш:

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

[horekrediskovich@horek ~]$ TEST=12
[horekrediskovich@horek ~]$ $TEST
bash: 12: команда не найдена
[horekrediskovich@horek ~]$


delvin-fil писал(а):
10.12.2016 05:55
Нет?
Работает и нет "загадочных" переменных - все на своих местах.

Да работает :( но вот как вытаскивается данные из переменной в данном случае, я не совсем понял.

З.ы. пошел по новой перечитываать раздел баш-гайда по переменным
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Загадочный вызов переменной в скрипте

Сообщение Bizdelnick »

bash сначала раскрывает переменные в строке, а уже после этого интерпретирует её. То есть фактически выполняется команда

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

/usr/bin/tar -cf backup_home.tar /home | gzip > backup_home.tar.gz
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
HorekRediskovich
Сообщения: 125

Re: Загадочный вызов переменной в скрипте

Сообщение HorekRediskovich »

Bizdelnick писал(а):
10.12.2016 17:06
bash сначала раскрывает переменные в строке, а уже после этого интерпретирует её. То есть фактически выполняется команда

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

/usr/bin/tar -cf backup_home.tar /home | gzip > backup_home.tar.gz

Понял, спасибо :drinks:
Спасибо сказали:
Ответить