Zmienna łańcuchowa z odstępami jako parametr polecenia w skrypcie powłoki

1

Jak mogę przechowywać odstępy w zmiennej i używać go jako parametru polecenia w skrypcie powłoki?

Oto co próbuję zrobić:

DESTINATION='/mnt/External Harddisk'
FILE_NAME=$DESTINATION/home.tar.gz
INCREMENTAL=$DESTINATION/home.snar

tar -zcvpf $FILE_NAME \
--directory=/home \
--listed-incremental=$INCREMENTAL \
--exclude=.gvfs \
--exclude=.cache* \
--exclude=*/[Cc]ache* \
--exclude=.thumbnails* \
--exclude=*/[Tt]rash* \
--exclude=*~ \
--exclude=.dropbox* \
--exclude=*.vdi \
--exclude=*VirtualBox*VMs* \
.
Eduardo
źródło

Odpowiedzi:

2

ta odpowiedź może to obejmować Spacje w zmiennych środowiskowych systemu Linux?

Umieszczasz zmienną środowiskową w podwójnych cudzysłowach. przykład pokazujący to poniżej

Robię, ls 'asdf asdf'co jest na jednym pliku „adsf asdf” ze spacją w nazwie pliku. Chcę to zrobić ze zmienną. Widzisz z podwójnymi cudzysłowami, to dostaje wynik. Bez cudzysłowów traktuje to miejsce jako specjalne i dwukrotnie szuka pliku asdf. I z pojedynczymi cudzysłowami ls '$f'szuka dosłownego dolara f. Ale przy podwójnych cudzysłowach ls "$f"to działa, tzn. Daje taki sam wynik jak ls 'asdf asdf'.

$ ls 'asdf asdf' <ENTER>
ls: cannot access asdf asdf: No such file or directory

$ export f='asdf asdf' <ENTER>

$ echo $f <ENTER>
asdf asdf

$ ls $f <ENTER>
ls: cannot access asdf: No such file or directory
ls: cannot access asdf: No such file or directory

$ echo $f <ENTER>
asdf asdf

$ ls '$f' <ENTER>
ls: cannot access $f: No such file or directory


$ ls "$f" <ENTER>
ls: cannot access asdf asdf: No such file or directory
barlop
źródło
-1

Dodaj dowolny znak spacji za pomocą ciągu Escape, aby spacja była w ciągu jako „\” (ukośnik + spacja). Mam nadzieję, że to pomoże.

Tien Vu
źródło
1
co masz na myśli? lubię to? nie działa pastebin.com/raw.php?i=bCa90GYe
barlop
1
Powłoka analizuje cytaty i znaki ucieczki przed podstawieniem zmiennych, więc umieszczanie cudzysłowów i / lub znaków ucieczki w wartościach zmiennych nic nie robi. Musisz umieścić cudzysłowy wokół odwołania do zmiennej.
Gordon Davisson,
Przeczytaj uważnie pytanie ponownie. Twoja odpowiedź nie odpowiada na pierwotne pytanie.
DavidPostill
Podaj przykład i przetestuj go. Możesz nawet spróbować i przekonać się, że to nie działa.
barlop