Объединение строк (Объединение строк с переменными)

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

Ответить
slidermans
Сообщения: 11

Объединение строк

Сообщение slidermans »

Добрый день.
Есть код

user@host

#!/bin/sh DATES=`date +%Y.%m.%d --date='1 days ago'` OLD=${DATES} BACKUPDIR=/root/backup/_${OLD} echo ${BACKUPDIR} FILES=dump.${OLD}_21.01.01.tar.gz echo ${FILES}


Ответ:

user@host

[root@backup]# sh dump_ftp.sh /root/backup/_2015.09.09 _21.01.01.tar.gz


BACKUPDIR выводится корректно, а FILES хоть ты тресни не работает :(
Уже и с кавычками пробовал и по всякому...
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Объединение строк

Сообщение Bizdelnick »

УМВР:

Shell

% ./test.sh /root/backup/_2015.09.09 dump.2015.09.09_21.01.01.tar.gz %


Что за система, и что в ней за /bin/sh? Отдельно взятая команда date +%Y.%m.%d --date='1 days ago' что выводит?

P. S. А кавычки в любом случае не лишними будут, в том числе вокруг ``.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
slidermans
Сообщения: 11

Re: Объединение строк

Сообщение slidermans »

Команда date +%Y.%m.%d --date='1 days ago' выдает 2015.09.09 Все четко.
Linux 2.6.18-406.el5 #1 SMP Tue Jun 2 17:25:57 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux
`Bash', Version 3.2
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Объединение строк

Сообщение Bizdelnick »

$

[user@centos511-amd64 ~]$ sh test.sh /root/backup/_2015.09.09 dump.2015.09.09_21.01.01.tar.gz [user@centos511-amd64 ~]$ uname -a Linux centos511-amd64 2.6.18-406.el5 #1 SMP Tue Jun 2 17:25:57 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux [user@centos511-amd64 ~]$


Давайте hexdump -C dump_ftp.sh
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
slidermans
Сообщения: 11

Re: Объединение строк

Сообщение slidermans »

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

Re: Объединение строк

Сообщение Bizdelnick »

sh -x dump_ftp.sh
hexdump -C dump_ftp.sh
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
slidermans
Сообщения: 11

Re: Объединение строк

Сообщение slidermans »

user@host

[root@backup]# sh -x dump_ftp.sh ++ date +%Y.%m.%d '--date=1 days ago' + DATES=$'2015.09.09\r' + OLD=$'2015.09.09\r\r' + BACKUPDIR=$'/root/backup/_2015.09.09\r\r\r' + echo $'/root/backup/_2015.09.09\r\r\r\r' /root/backup/_2015.09.09 + FILES=$'dump.2015.09.09\r\r_21.01.01.tar.gz\r' + echo $'dump.2015.09.09\r\r_21.01.01.tar.gz\r\r' _21.01.01.tar.gz

Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Объединение строк

Сообщение Bizdelnick »

В винде скрипт писали, что ли?
cat dump_ftp.sh | tr -d '\r' > dump_ftp_fixed.sh
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
slidermans
Сообщения: 11

Re: Объединение строк

Сообщение slidermans »

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

Re: Объединение строк

Сообщение Bizdelnick »

Если в качестве vi у Вас vim, то он концы строк молча использует такие же, какие были в файле изначально. Наверное, и другие вариации vi так же делают.
Лучше не писать ничего в винде вообще, а если уж пишете — используйте нормальный редактор, который юниксовые концы строк (\n) умеет использовать.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
slidermans
Сообщения: 11

Re: Объединение строк

Сообщение slidermans »

Да, это помогло.
Отключил в редакторе перевод строк.
Спасибо сказали:
slidermans
Сообщения: 11

Re: Объединение строк

Сообщение slidermans »

Еще один вопрос.
Файл передается ftp сервер1
Но файл невозможно открыть/удалит/скопировать потом на этом сервере?
Может что с правами или с владельцем?
Как это поменять?
Spoiler

user@host

#!/bin/sh DATES=`date +%Y.%m.%d --date='1 days ago'` BACKUPDATES=`date +%Y-%m-%d --date='1 days ago'` BACKUPDIR=/root/backup/_${BACKUPDATES} cd ${BACKUPDIR} FILES=dump.${DATES}_21.01.01.tar.gz ftp -i *** <<EOF put ${FILES} /home/dump/DUMP.tar.gz close bye quit EOF


Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Объединение строк

Сообщение Bizdelnick »

slidermans писал(а):
11.09.2015 09:54
Но файл невозможно открыть/удалит/скопировать потом на этом сервере?

Это уже вопрос настройки сервера.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
slidermans
Сообщения: 11

Re: Объединение строк

Сообщение slidermans »

Костылем после put прописал chmod 644 /home/dump/fixber/DUMP.tar.gz
Работает :)
Спасибо сказали:
Ответить