2013-07-03 1 views
1

Это действительно короткий вопрос. Но есть ли что-то синтаксически неправильное с размещением переменной $example в качестве аргумента для tar в файле bash?

У меня есть файл, написанный в

//only portion that really matters 
#!/bin/bash 
... 
tar -cvpzf $filename $backup_source 

//here's the actual code 
#!/bin/bash 
backup_source="~/momobobo" 
backup_dest="~/momobobo_backup/" 
dater=`date '+%m-%d-%Y-%H-%M-%S'` 
filename="$backup_dest$dater.tgz" 
echo “Backing Up your Linux System” 
tar -cvpzf $filename $backup_source 
echo tar -cvpzf $filename $backup_source 
echo “Backup finished” 

//and heres the error 
“Backing Up your Linux System” 
tar: ~/momobobo: Cannot stat: No such file or directory 
tar (child): ~/momobobo_backup/07-02-2013-18-34-12.tgz: Cannot open: No such file or directory 
tar (child): Error is not recoverable: exiting now 
tar: Child returned status 2 
tar: Error is not recoverable: exiting now 
tar -cvpzf ~/momobobo_backup/07-02-2013-18-34-12.tgz ~/momobobo 

Обратите внимание на "эхо-тар ...". Когда я копирую и вставляю вывод и запускаю его в моем терминале, нет никаких проблем с файлом tar. В настоящее время я запускаю Xubuntu, и я уже сделал обновление.

ответ

6

~ не распространяется на ваш домашний каталог в двойных кавычках.

Просто удалить двойные кавычки:

backup_source=~/momobobo 
backup_dest=~/momobobo_backup/ 

В тех случаях, когда у вас есть вещи, которые вы хотели бы процитировать, вы можете использовать ~/"momobobo"

+0

О мой бог спасибо !!! Это было бы совершенно неинтуитивно для меня. Вы только вернули мне веру в скрипты сэр :) –