2013-04-01 191 views
1

假設我有一個文件格式我要保存數據庫備份來給出這樣:重定向輸出

echo "~/backups/$(date +'%Y-%m-%d_%H-%M-%S').sql" 

現在我怎麼可以指定這個結果作爲殼輸出文件名?

mysqldump my_db > ....? 

順便說一句:殼解釋一個嵌套echo命令作爲可執行命令/文件的結果。所以

mysqldump my_db > $(echo "something") 

不起作用。相反,shell會查找名爲something的文件並嘗試執行它

回答

3

沒有必要使用嵌套的回顯。你可以避免它:

mysqldump my_db > ~/backups/$(date +'%Y-%m-%d_%H-%M-%S').sql 
0

$(echo「something」)不是問題,而〜是。

echo 'hello world' > $(echo "/home/root/backups/$(date +'%Y-%m-%d_%H-%M-%S').sql") 

如果你有興趣在如何使用〜: 如果使用完整路徑,它工作正常

eval "echo 'hello world' > $(echo "~/backups/$(date +'%Y-%m-%d_%H-%M-%S').sql")" 
+0

不是真的...慶典重定向可以處理'〜';不需要將'〜'轉換爲'/ home/root /';除非它由其他用戶或非互動方式運行...... – anishsane