Вопрос по bash скрипту

компьютеры Linux bash скрипты

Есть скрипт

#!/bin/sh
echo $USER | grep TCMC >/dev/null
if [ $? -ne 0 ]
then
echo "is not a domain user"
exit 1
fi
d=$(echo -e $USER | egrep -o '\\.+$' | egrep -o '[^\\].*$')
echo $d
##end
$USER возвращает TCMC\11i-41-22, задача сделать 11i-41-22 для установки как глобальной переменной.
Вот только возвращается пустое значение. Специально заключил в конструкцию $() так, как есть символ \.
В чём ошибка?


Примечание:
Команда echo -e $USER | egrep -o '\\.+$' | egrep -o '[^\\].*$' в консоли возвращает правильное значение.

Примечание:
Поскольку $USER глобальная переменная, то в export USER=<значение> нет необходимости.
Однако проверки ради включил в скрипт код echo $USER и получил вывод
TCMC i-41-22
Хотя должен был 11i-41-22
Видимо обратный слеш воспринимается как пробел... =( и рушит скрипт

Примечание:
d=`echo $USER |sed 's/.*\\\(.*\)/\1/'`
sed: -e выражение #1, символ 15: Unmatched ) or \)

Примечание:
to: Старший бригады телепатов
TCMC\11i-41-22@c440-lws01:/test$ cat test
#!/bin/sh
echo $USER | grep TCMC >/dev/null
if [ $? -ne 0 ]
then
echo "is not a domain user"
exit 1
fi
##d=$(echo $USER | egrep -o '\\.+$' | egrep -o '[^\\].*$')
d=`/bin/echo -E $TESTUSER |sed -e 's/.*\\\\\(.*\\)/\1/g'`;
echo $d

TCMC\11i-41-22@c440-lws01:/test$ ./test

TCMC\11i-41-22@c440-lws01:/test$
Ответы:
А перед тем как запустить скрипт выполняется команда export USER=<значение> ?
user@host:~$ cat tsc
d=`/bin/echo -E $TESTUSER |sed -e 's/.*\\\\\(.*\\)/\1/g'`; echo $d
user@host:~$ echo $TESTUSER
TCMC\11i-41-22
user@host:~$ bash tsc
11i-41-22
user@host:~$


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.