Для одного пользователя можно сделать как это:
su - -c '. ~/.profile; echo $PATH'
$PATH списка всего пользователя:
for user in $(cat /etc/passwd | awk -F: '{print $1}'); do
su - $user -c '. ~/.profile; printf "%s\n" "$PATH"'
done
@Camil Staps
. ~/.profile
таким образом прием, который я изучаю от своей любимой личности, Peteris Krumins. Он объяснил прием здесь. Возможно, более поздняя версия удара имела здание с опцией NON_INTERACTIVE_LOGIN_SHELLS
.
$ stty intr ^C^J
То же самое, конденсированное:
stty sane < /dev/whatever
stty intr ^c < /dev/whatever
более конденсированное:
и по-настоящему минималистское (в ответ на @Awk):
Ваш файл2
содержит подстроку, которая
grep совпадает с одной из строк из файла1Пример
.
с помощью команды 2 индексных файлов (
file1 и file1a) можно увидеть, что мы не получаем совпадение с файлом file1 и совпадение с файлом file1a.
). Иначе этот трюк вряд ли сработал бы..
@ terdon Вы можете сделать более простым
awk 'NR==FNR{a[$1]; next}($2 в a)' file1 file2