2016-01-22 165 views
0

我試圖移動遠程目錄的名字命名的移動遠程文件夾中包含的值是存儲在一個局部變量的單個數字。通過局部變量

ssh [email protected] 'mv /etc/folder_* /etc/folder_$value' 

但是$值沒有被解析,我試過把報價和雙引號?

+1

什麼是'回聲 「$值」'的輸出。 「不解析」是什麼意思?你怎麼知道的? –

+0

回聲$值可以是數字1-9之間我的意思是,$值不添加到新目錄名的末尾。 – Lurch

+2

@Lurch:如果使用雙引號(即'ssh [email protected]「mv/etc/folder_ */etc/folder_ $ value」')不能解決問題,這意味着'value'沒有被賦值或者是空。嘗試在命令前面加上'echo「$ value」',並告訴我們你如何分配'值' –

回答

2

解決方法是使用雙引號而不是單引號。 這樣shell命令就可以插入你的本地定義的變量「value」。 因此,使用代替:

ssh [email protected] "mv /etc/folder_* /etc/folder_$value" 

實施例輸出用於當我測試此: (可變NROFLINES在本地定義,等於4)

[email protected]:~$ ssh [email protected] 'ls | head -$NROFLINES' 
[email protected]'s password: 
Desktop 
Documents 
Downloads 
examples.desktop 
Music 
Pictures 
Public 
Templates 
tmp 

[email protected]:~$ ssh [email protected] "ls | head -$NROFLINES" 
[email protected]'s password: 
Desktop 
Documents 
Downloads 
examples.desktop