Не могу передать переменную в другую команду

Я пытался передать переменную другой команде оболочки.

Для ясности;

passwdContent=$( getent passwd "$USER" )
echo "passwdcontent" $passwdContent

Я получаю поле "passwd" от пользователя " Икс". После этого раздела я хочу поиграть с этой переменной.

Но здесь я не мог решить, как я могу передать переменную «passwdContent». I tried a way like this;

exampleVariable=[( "$passwdContent" | cut -d : -f 1 )]

After I want to echo the "exampleVariable" it gave me error.

I knew I can do this all of in one line. But I want to learn how can I do this.

5
задан 25 June 2020 в 15:14

2 ответа

Вы должны использовать подстановку команд, и для этого вам не хватает $ .

Вы также должны передать содержимое вашей переменной в cut или прочитать его из stdin .

Так что используйте это вместо :

$ exampleVariable="[$(cut -d: -f1 <<<$passwdContent )]"

Теперь:

$ echo "$exampleVariable"
[ravexina]
4
ответ дан 30 July 2020 в 22:19

Другой способ разбора вывода из гетента.

$ [[ $(getent passwd "$USER") =~ ([^:]+):x: ]] && var=${BASH_REMATCH[1]}
3
ответ дан 30 July 2020 в 22:19

Другие вопросы по тегам:

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