Как распечатать каждый аргумент команды с помощью эха?

Если идентификатор не находится внутри пароля (grep 506 /etc/passwd), имя пользователя не отображается.

В этом случае добавьте соответствующую запись внутри /etc/passwd.

РЕДАКТИРОВАТЬ Как упоминалось Джеффом Шаллером и Кевином О:

Этот ответ не совсем полный! Лучше найти эти строки в файле /etc/passwd, третье поле которого ($3, разделенное двоеточием -F:), содержит точное значение 506. См. первый комментарий Джеффа . В моем простом примере выше будут показаны строки, содержащие имя пользователя yx506, идентификатор 123506 и так далее.

Но в любом случае :если идентификатор пользователя отсутствует внутри /etc/passwd, этот ответ может быть решением.

В дальнейшем постараюсь быть более конкретным...

0
04.07.2019, 04:40
1 ответ

В вашем примере команда 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, чтобы он выделялся. только не называй это "эхом")

0
28.01.2020, 02:39

Теги

Похожие вопросы