Это можно сделать с помощью bash:
while IFS="=" read key value; do
if [[ key == branch.*.description ]]; then
branch=${key#branch.} # remove "branch." prefix
branch=${key%.description} # remove ".description" suffix
echo "$branch $value"
fi
done < <(git config -l)
Я специально "разбил" строку дважды :сначала на равные , затем на точки. В «значении» явно могут быть точки, поэтому я хочу иметь полный контроль над разбиением слов.
В этом случае вам нужно:
ssh XYZ "qlogin -l cuda=1"
или
ssh XYZ "export TERM=xterm ; qlogin -l cuda=1"
Если вы получили сообщение об ошибке, связанной с тем, что переменная TERM
не установлена, или:
ssh XYZ << 'EOF'
qlogin -l cuda=1
EOF
Если у вас есть несколько команд для запуска.
Наконец, так как я уверен, что это могло бы сработать, если бы не было:
ssh XYZ << 'EOF'
shopt -s expand_aliases
source.bashrc
qlogin -l cuda=1
EOF
Как вы, наверное, заметили, последний может работать, если другой не работает, в основном, если qlogin
не находится в одном из экспортируемых PATH по умолчанию,и либо:
псевдоним где-то еще (например, :некоторые удаленные серверы предпочитают хранить свои сценарии установки в смонтированной папке NFS, которая не экспортируется в PATH)
если это часть более крупной функции/скрипта, состоящего из функций.
Вы можете посмотреть на вывод env
, alias
и whereis
, чтобы убедиться в этом. Замена .bashrc
на все, что может упоминать полный путь к команде qlogin
, например .profile
или другие, которые приходят на ум.