c переменная погрешность среды оболочки: “Плохо: модификатор в $”

Я использую tcsh и определяю переменную окружения следующим образом:

setenv mycomp myusername@my.computer.com

так, чтобы, когда я должен скопировать файлы с удаленного my.computer.com, я ввел следующее:

scp $mycomp:sourcepath destpath

Но когда я делаю это, я получаю следующую ошибку: "Плохо: модификатор в $ (m)". где (m) является первым символом после двоеточия.

Что эта ошибка говорит мне, и как я могу зафиксировать ее?

3
задан 18.01.2011, 01:04

2 ответа

Переменное расширение с двоеточием после того, как это рассматривает буквы после двоеточия как модификаторы.

Например, $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
5
ответ дан 08.12.2019, 00:05

В то время как у меня нет tcsh среды для проверения этого, я предположил бы, что, когда оболочка ищет переменную среды, она не разделяет на: и поиск $mycomp:sourcepath как целое имя переменной.

Я попытался бы исказить Вашу команду scp.

0
ответ дан 08.12.2019, 00:05

Теги

Похожие вопросы