Если идентификатор не находится внутри пароля (grep 506 /etc/passwd
), имя пользователя не отображается.
В этом случае добавьте соответствующую запись внутри /etc/passwd
.
РЕДАКТИРОВАТЬ Как упоминалось Джеффом Шаллером и Кевином О:
Этот ответ не совсем полный! Лучше найти эти строки в файле /etc/passwd, третье поле которого ($3
, разделенное двоеточием -F:
), содержит точное значение 506
. См. первый комментарий Джеффа . В моем простом примере выше будут показаны строки, содержащие имя пользователя yx506, идентификатор 123506 и так далее.
Но в любом случае :если идентификатор пользователя отсутствует внутри /etc/passwd
, этот ответ может быть решением.
В дальнейшем постараюсь быть более конкретным...
В вашем примере команда echo $0 вывела "bash". Это правда, потому что bash работает, когда вы находитесь в оболочке.
Аргументы, к которым вы хотите получить доступ, передаются команде ls
. Когда это вернется, и ваше приглашение, аргументы исчезнут.
После создания файла ("скрипт" ), содержащий строку
echo $0 $1 $2
и вызовите его по источнику:
. myecho.cmd a b c d
...вы получаете:
bash a b
После того, как вы сделаете его исполняемым, (добавьте #! первая строка, chmod, cp в каталог пути ), вы вызываете его напрямую:
myecho.cmd a b c d
и теперь $0 — это имя новой команды:
/usr/local/bin/myecho.cmd a b
(Я называю его.cmd, чтобы он выделялся. только не называй это "эхом")