Я пытался передать переменную другой команде оболочки.
Для ясности;
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.
Вы должны использовать подстановку команд, и для этого вам не хватает $
.
Вы также должны передать
содержимое вашей переменной в cut
или прочитать его из stdin
.
Так что используйте это вместо :
$ exampleVariable="[$(cut -d: -f1 <<<$passwdContent )]"
Теперь:
$ echo "$exampleVariable"
[ravexina]
Другой способ разбора вывода из гетента.
$ [[ $(getent passwd "$USER") =~ ([^:]+):x: ]] && var=${BASH_REMATCH[1]}