Способы подключения к системам Linux, Windows и Mac.

Ошибка возникает из-за того, что $( echo id -g $user )будет развернуто в слова id -g username. Это нельзя сравнивать с 101, так как расширение не заключено в кавычки.

Чтобы сравнить вывод id -g "$user"(, обратите внимание на двойные кавычки ), используйте

if [ "$( id -g "$user" )" = "101" ]

Внутри [... ]вы должны использовать один =для сравнения строк. В оболочках с [[... ]]вы можете использовать==:

if [[ $( id -g "$user" ) == "101" ]]

Здесь заключение команды подстановки в кавычки не требуется, но это необходимо, если вы используете [... ].


Идиоматический способ выполнения такого рода задач состоит в том, чтобы не сохранять выходные данные конвейера whoв переменной, а передавать их непосредственно в цикл:

who | awk '{ print $1 }' | sort -u |
while read user; do
    if [ "$( id -g "$user" )" = "101" ]; then
        echo 'Got it'
    fi
done
0
05.03.2020, 11:49
1 ответ
  1. Вы можете подключиться по SSH к машине с Windows. В него нужно установить ssh-сервер. Вы можете установить сервер Openssh на Windows 10 и Windows Server 2019, как описано в этом официальном документе от Microsoft -https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse. После установки сервера Openssh на компьютере с Windows и его настройки вы можете подключиться к компьютеру с Windows по ssh.

  2. Вы можете получить доступ к компьютеру Mac с помощью SSH. Об удаленном доступе по ssh к машине с Mac OS ответ здесь-https://superuser.com/questions/104929/how-do-you-run-a-ssh-server-on-mac-os-x

  3. Да, это возможно.

2
28.04.2021, 23:21

Теги

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