Strona 1 z 1

[BASH] jak wstawić do zmiennej wynik polecenia 'date'

: 07 maja 2013, 21:07
autor: nrw
Hej,
niedawno zacząłem zabawę z bashem i na początek chciałem stworzyć skrypt, który zarchiwizuje pliki znajdujące się w folderze temp, a nazwą archiwum będzie aktualna data. I właśnie z tą datą w nazwie mam problem - przy uruchomieniu skryptu wysypuje się błąd:

Kod: Zaznacz cały

tar: +%y-%m-%d.tar: Nie można stat: Nie ma takiego pliku ani katalogu
tar: Zakończenie w stanie błędu z powodu uprzednich błędów
Skrypt poniżej:

Kod: Zaznacz cały

#!/bin/bash
#skrypt ma wrzucic do archiwum pliki znajdujące się w folderze temp
#nazwą archiwum ma być aktualna data
filename='date +%y-%m-%d'
tar -cf ${filename}.tar temp/
#kompresja do .gz
gzip ${filename}.tar
Jakieś pomysły w czym może być problem? Widziałem wiele podobnych skryptów w necie i one ludziom działały a ten mój nie chce:)

Re: [BASH] Problem z poleceniem 'date'

: 07 maja 2013, 21:19
autor: norvoles

Kod: Zaznacz cały

filename=$(date +%y-%m-%d)
Przy okazji, tar potrafi kompresować. Poszukaj w manualu tara opcji -j oraz -J.

Re: [BASH] Problem z poleceniem 'date'

: 07 maja 2013, 21:24
autor: nrw
Pomogło :) Dzięki!

Re: [BASH] Problem z poleceniem 'date'

: 08 maja 2013, 08:39
autor: tristan
nrw pisze:Pomogło :) Dzięki!

mogłeś też zastosować krzywe ukośniki `proces potomny` do odpalenia date z wnętrza skryptu.

Re: [BASH] jak wstawić do zmiennej wynik polecenia 'date'

: 08 maja 2013, 10:05
autor: Ubek308
Mnie uczyli zeby tak nie robic. (Choc robię).
Lepiej wrzucic 'date +%y-%m-%d' do zmiennej srodowiska.