Ваша команда невозможно сложна.
Вот упрощенная версия:
getent passwd USERNAME | awk -F: '{print $6 "/Desktop"}'
Вот распутанная версия Вашего оригинала:
awk -v "id=$(id -u USERNAME)" -F: '{if ($3 == id) print $6 "/Desktop"}' /etc/passwd
или
awk -v "name=USERNAME" -F: '{if ($1 == name) print $6 "/Desktop"}' /etc/passwd
Нет.
По крайней мере, не так. Предыдущая строка в цитируемом документе имеет важное значение:
- Настройте запрос на выполнение
pwd
каждый раз, когда вы cd.- Всегда делайте
cd.
перед тем, как что-либо делать.
Таким образом, вы как оператор проверяете свой текущий рабочий каталог, прежде чем делать что-либо важное, поскольку он распечатывается при каждом изменении. компакт-диск
в противном случае не имеет никакого смысла.
Эта «проверка» - хорошая вещь, и вам следует адаптировать ее форму. Более (IMHO) распространенный вариант этой темы - всегда распечатывать рабочий каталог по запросу.
Если текущий рабочий каталог вашей оболочки будет удален, можно потерять данные.
Например,
$ pwd
/home/user/test
$ rmdir /home/user/test
$ pwd
/home/user/test
$ some_command | tee command.log
tee: command.log: No such file or directory
<long output>
Вывод some_command
не была записана на диск.
Ввод cd.
перед запуском команды выявит проблему.
$ pwd
/home/user/test
$ rmdir /home/user/test
$ cd .
$ pwd
.
Если текущий рабочий каталог был удален и создан заново, набрав cd.
, будет "обновить "ссылку на этот каталог.
$ ls
foo bar ljz
$ pwd
/home/user/test
$ rmdir /home/user/test
$ mkdir /home/user/test
$ pwd
/home/user/test
$ ls
$ cd .
$ ls
foo bar ljz
Я думаю, что важнее показать ваш текущий каталог.
На каждом сервере Linux я изменяю приглашение в / etc / bashrc
, изменяя "W" на "w".
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
-
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \w]\\$ "
Эффект:
[root@xt include]#
по сравнению с
[root@xt /usr/src/spl-0.6.1/include]#