Псевдонимы Bash не работают через ssh

Решено: Да, это плохая практика. Спасибо @SatoKatsura за заполнение пробелов.

Правильное решение:

# ... blah ...
echo -n "A prompt for the user " >&2
read SOMEVAR >> /dev/null
# ... other stuff ...
printf "Results\t$RESULT\n"

Что более портативно и лучше и безопаснее.

2
14.08.2016, 13:57
2 ответа

использовать

 #!/bin/bash -l

проблема решена

-2
27.01.2020, 22:19

Мой любимый способ (в~/.bashrc):

function bassh() {
    local host=${1:?'arg #1 missing: remote host'}
    shift
    local command="$@"
    local usage="bassh REMOTE_HOST COMMAND"

    [ "$command" ] || {
        echo -e >&2 "[error] no command provided\nUsage: ${usage}"
        return 1
    }

    ssh ${host} -t bash -ic "'${command}'"
}

Обратите внимание на параметр -tдля ssh, который принудительно выделяет псевдо--терминал, что позволяет избежать соответствующих предупреждений.

Тогда вы называете это просто:

$ bassh REMOTE_HOST ll
0
27.01.2020, 22:19

Теги

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