-eq
True if the integers n1 and n2 are algebraically equal; otherwise, false.
=
True if the strings s1 and s2 are identical; otherwise, false.
Итак, -eq
сравнивает целые числа, а =
сравнивает строки (, которые также будут работать с некоторыми ограниченными целочисленными случаями ).
У вас есть проблема с синтаксисом, она должна быть:
[ "$rc" = 0 ]
И не
[ $rc=0 ]
[ "$rc" = 0 ]
должен выйти с 1, потому что rc
не равно 0
[ $rc=0 ]
на самом деле должен завершиться с 0, потому что он, скорее всего, будет рассматриваться как строка, а наличие строки в тестовой конструкции [
будет оцениваться как истина
С тестом sh [
есть несколько отличий:
# leading 0
$ [ 01 -eq 1 ]; echo $?
0
# adjacent whitespace
$ [ ' 1' -eq 1 ]; echo $?
0
# negative 0 vs positive 0
$ [ 0 -eq -0 ]; echo $?
0
Однако с тестом bash [[
есть большое количество отличий (В том числе упомянутые выше):
# base 8
$ [[ 032 -eq 26 ]]; echo $?
0
# Arithmetic expressions
$ [[ 1*6+32/15*2-1 -eq 9 ]]; echo $?
0
# Base 64
$ [[ 64#Hello_world -eq -5506400892957379251 ]]; echo $?
0
И ваш клиент, и сервер жалуются, что не могут найти программу xauth. Сообщение «debug1 :No xauth program» приходит от вашего клиента, в котором говорится, что он не может найти копию xauth
локально. Сообщение «Remote :Нет программы xauth; невозможно переслать X11» исходит от сервера, в котором говорится, что он также не может найти xauth. Расположение по умолчанию для клиента и сервера — /usr/X11R6/bin/xauth
, хотя ваш поставщик может изменить его.
Для клиента вы можете установить местоположение Xauth в вашем .ssh/config:
XAuthLocation /some/path/to/xauth
Для сервера необходимо указать местоположение в конфигурации sshd _удаленного сервера:
XAuthLocation /opt/X11/bin/xauth
После изменения конфигурации вы должны запустить sshd -t
для проверки конфигурации, а затем перезапустить sshd
, чтобы он перечитал файл.
Добавьте /opt/X11/bin в ваш PATH в ~/.bashrc, например.
case $PATH in
(*"/opt/X11/bin"*) ;;
(*) PATH=$PATH:/opt/X11/bin ;;
esac
в самом начале файла.
(Строго нужно искать "/opt/X11/bin :" *| *" :/opt/X11/bin :" *| *" :/opt/X11/bin"|"/opt/X11/bin" но *"/opt/X11/bin" *почти наверняка достаточно хорош)
Мне пришлось установить xauth с помощью dnf:
dnf install xauth
После этого все заработало как положено. Для более старых систем Redhat используйте «yum» вместо «dnf» в приведенной выше команде.