Ваш скрипт должен выглядеть как
#!/bin/csh
set MYVAR = `echo $MYUSR | awk '{print substr($0,4)}'`
echo $MYVAR
У меня нет способа проверить это сейчас, позвольте мне сейчас, если это не сработает.
Если вы унаследовали основу вашего скрипта от кого-то другого, с #!/bin/sh
,
тогда вам нужно выяснить, является ли / bin / sh действительно оболочкой bourne, или это ссылка на / bin / bash
Вы можете сказать это, выполнив
ls -l /bin/sh /bin/bash
если вы получите информацию о файлах, размер которых точно такой же, то вы действительно используете bash, но он называется / bin / sh
Так что попробуйте эти 2 решения
MYVAR=$(echo $MYUSR | awk '{print substr($0,4)}')
echo $MYVAR
И
MYVAR=``echo $MYUSR | awk '{print substr($0,4)}``
echo $MYVAR
# arg!! only one pair of enclosing back-ticks needed,
# can't find the secret escape codes to make this look exactly right.
во всех включенных случаях (csh) обратные галочки И $( ... )
известны как подстановка команд.
То, что каждый вывод приходит при выполнении команды внутри, подставляется в командную строку И затем выполняется вся команда.
Надеюсь, это поможет.