Автор Гілка: Не виводить домашній каталог користувача  (Прочитано 2511 раз)

Відсутній traveller

  • Новачок
  • *
  • дописів: 33
  • Карма: +0/-0
Мені треба по логіну користувача вивести його домашній каталог. Використовую для цього файл /etc/passwd
Написав так:
awk -F: '{if($1 == "traveller") print $6}' /etc/passwdПрацює, отримую /home/traveller. Але назва користувача вшита в код. А мені потрібно, щоб з клавіатури вводився логін...
Тобто:
read login
awk -F: '{if($1 == $login) print $6}' /etc/passwd
Вводжу traveller... І не працює... Нема помилок. Просто нічого не знаходить. Я вже багато варіантів перепробував. Нічого не виходить. Чому?



« Змінено: 2010-01-27 12:46:19 від traveller »

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
tsubasa:~$ read l
isbear
tsubasa:~$ \grep -E "^$l:" /etc/passwd | cut -d : -f 6
/home/isbear

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Ви одинарні лапки (') з подвійними (") сплутали.
[Fedora Linux]

Відсутній traveller

  • Новачок
  • *
  • дописів: 33
  • Карма: +0/-0
Дякую, працює. У своєму скрипті я змінну брав і в подвійні лапки, і одинарні, і похилені... Все одно не працювало. Так я так і не розумію, чому те, що я написав не працює  :-?

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
[vlisivka@apollo ~]$ login=vlisivka; awk -F: "{if(\$1 == \"$login\") print \$6}" /etc/passwd
/home/vlisivka
[Fedora Linux]

Відсутній traveller

  • Новачок
  • *
  • дописів: 33
  • Карма: +0/-0
Дякую  :)