2016-01-22 46 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