Как включить историю команды up-arrow и завершение команды в SFTP на Gentoo?

Я столкнулся с этим вопросом, когда пытался сделать то же самое, но не хотел оставлять что-либо на экране и устанавливать переменную, поэтому я поместил следующее в сценарий оболочки, который я исходил:

function test_unicode {
  echo -ne "\xe2\x88\xb4\033[6n\033[1K\r"
  read -d R foo
  echo -ne "\033[1K\r"
  echo -e "${foo}" | cut -d \[ -f 2 | cut -d";" -f 2 | (
    read UNICODE
    [ $UNICODE -eq 2 ] && return 0
    [ $UNICODE -ne 2 ] && return 1
  )
}

test_unicode
RC=$?
export UNICODE_SUPPORT=`[ $RC -eq 0 ] && echo "Y" || echo "N"`
unset test_unicode
3
07.09.2018, 18:07
1 ответ

Спасибо @ steeldriver , который указал на libedit . Так что нужно было просто добавить USE-флаг libeditдля portage. Я добавил его локально вот так:

# /etc/portage/package.use
>=net-misc/openssh-7.7_p1-r9 libedit

А затем пересобрал OpenSSH:

$ emerge -av net-misc/openssh

Кроме того , для этого требуется, чтобы bash-completionуже был установлен и включен для sftp.

Установить завершение bash:

$ sudo emerge --ask app-shells/bash-completion

Вы можете проверить, включено ли завершение bash -для sftp, например:

$ eselect bashcomp list | grep ftp

Что должно возвращать что-то вроде:

  [337] lftp *
  [338] lftpget *
  [451] ncftp *
  [633] sftp *

Звездочка в конце подтверждает, что завершение bash -включено для sftp, (и в этом случае некоторые другие утилиты ftp также ).

2
27.01.2020, 21:25

Теги

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