Получение "команда не найдена" при использовании cut on переменной bash

У меня есть две переменные в скрипте bash

hostname="ab78ascsoadp003.abc.com"
Loc=`$hostname | cut -c3,4`

Я получаю ошибку ab78ascsoadp003.abc.com: command not found

Я пытаюсь использовать cut command чтобы $Loc получает 78

3 ответа

Пока вы можете использовать cut Чтобы достичь этого, иногда полезно придерживаться Bash:

hostname="ab78ascsoadp003.abc.com"
Loc=${hostname:3:2}

${parameter:offset:length} Расширение подстроки. Расширяется до длины символов параметра, начиная с символа, указанного смещением. Если length опущен, расширяется до подстроки параметра, начиная с символа, указанного offset, length а также offset являются арифметическими выражениями

источник: man bash

hostname="ab78ascsoadp003.abc.com"
Loc=`echo "$hostname" | cut -c3,4`
# or
Loc=`cut -c3,4 <<<"$hostname"`

Вам не хватает echo

Loc=`echo $hostname | cut -c3,4`
Другие вопросы по тегам