2016-01-22 10 views
0

Я пытаюсь переместить удаленный каталог, чье имя содержит значение, которое представляет собой однозначное число, хранящееся в локальной переменной.Перемещение удаленной папки с именем локальной переменной

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

Однако значение $ не анализируется, я пробовал использовать кавычки и двойные кавычки?

+1

Что такое выход 'эхо "$ значение"' , Что вы подразумеваете под «не разобравшись» и откуда вы знаете? –

+0

Значение echo $ может быть числом от 1 до 9, что я имею в виду, так это то, что $ value не добавляется в конец нового имени каталога. – Lurch

+2

@Lurch: если использовать двойные кавычки (то есть 'ssh [email protected]" mv/etc/folder_ */etc/folder_ $ value "') не решает проблему, это означает, что 'значение' не назначается или пустой. Попробуйте поставить 'echo '$ value" 'перед командой и покажите нам, как вы назначаете' value' –

ответ

2

Решение заключается в использовании двойных кавычек вместо одиночных кавычек. Чтобы команда оболочки могла интерполировать вашу локально определенную переменную «значение». Так использовать вместо:

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