Можно дать тот пользовательский идентификатор пользователя 0 в файле паролей и сделать тот сценарий их оболочкой входа в систему. То, когда пользователь входит в систему с их именем и паролем, выполнения сценария как корень, завершается, и затем пользователь выходится из системы. Следовательно, пользователь ограничен тем корневым сценарием.
] Команда sed, которая у вас есть в вопросе, на самом деле верна. Если вы видите результат в новой строке, вы либо сужаете свой терминал и просто видите обертку, либо есть код, включенный в ваше реальное окружение, который вы не показываете нам в этом примере. Он работает как есть, но есть две проблемы, о которых вы должны знать:[
] []Использование []$[
] как части вашего выражения внутри строки, заключенной в двойные кавычки, опасно. Обычно это будет расширяться как bash-переменная. В этом случае вам это сошло с рук, потому что символ []/[
] после него не является действительным ценным именем, но чтобы избежать этого, вы действительно должны были использовать одинарные кавычки вокруг вашего выражения.[
]Если вы хотите выровнять вещи как столбцы, возможно, вам следует включить какой-нибудь разделитель между концом строки и добавляемым значением. Вкладка может быть самым простым способом сделать это, но вы, вероятно, должны использовать любой разделитель, который у вас уже есть между другими полями.[
][]Комбинированная команда может выглядеть следующим образом:[
] [sed -i 's/$/\tgreen/' ./test.txt
]
[]Если результаты выстраиваются не так, как вы хотите, вы можете посмотреть, как выстраивать свои данные через []столбец[
], чтобы выстраивать столбцы.[
]Что касается вещей, которые вы нам не показываете, то проблема, вероятно, в вашем файле данных. Так как вы упоминаете Wordpad и Excel в комментарии. Думаю, у вас смешанная среда Windows/Unix. Я подозреваю, что проблема в том, что в вашем файле данных есть мусорные непечатаемые последовательности до конца строк. Вы должны сделать что-нибудь, чтобы это убрать. Простая []sed 's/\s*$//'[
] может быть одним из мест для начала (полосы всех пробельных символов в конце строки, кроме последней новой строки), но более продвинутая система, такая как преобразователь dos2unix, может дать вам лучшие результаты. Если у вас есть бинарный мусор, и файл должен быть ASCI-текстом, вы можете попробовать взорвать все, что находится вне диапазона с помощью []tr -cd '\11\12\15\40-\176'[
].[
] можно использовать []awk[
]:[
awk '{printf "%s", $0 "\tgreen\n"}' infile > outfile
] Вы можете использовать Vim в режиме Ex:
ex -sc '%s/$/\tgreen/|x' test.txt
%
выберите все строки
\ t
вкладку
x
сохранить и close