Я использую tcsh и определяю переменную окружения следующим образом:
setenv mycomp myusername@my.computer.com
так, чтобы, когда я должен скопировать файлы с удаленного my.computer.com, я ввел следующее:
scp $mycomp:sourcepath destpath
Но когда я делаю это, я получаю следующую ошибку: "Плохо: модификатор в $ (m)". где (m) является первым символом после двоеточия.
Что эта ошибка говорит мне, и как я могу зафиксировать ее?
Переменное расширение с двоеточием после того, как это рассматривает буквы после двоеточия как модификаторы.
Например, $dir:h
средства расширяются $dir
с h
модификатор. h
верхняя часть средств, т.е. все кроме последней части пути.
% set dir=/home/user
% echo $dir:h
/home
Вся информация находится в tcsh (1) страница справочника:
History substitution
...
The word or words in a history reference can be edited, or ‘‘modi-
fied’’, by following it with one or more modifiers, each preceded by a
‘:’:
h Remove a trailing pathname component, leaving the head.
t Remove all leading pathname components, leaving the tail.
r Remove a filename extension ‘.xxx’, leaving the root name.
e Remove all but the extension.
u Uppercase the first lowercase letter.
l Lowercase the first uppercase letter.
s/l/r/ Substitute l for r.
...
Variable substitution
...
The ‘:’ modifiers described under History substitution, except for
‘:p’, can be applied to the substitutions above.
Можно избежать модификатора путем обертывания имени переменной в фигурные скобки, например.
scp ${mycomp}:sourcepath destpath