bash: выполнить заданную команду в зависимости от ввода - PullRequest
0 голосов
/ 24 сентября 2019

Я могу сделать так, чтобы код работал для меня в командной строке, но я пытаюсь добиться чего-то большего, и я не понимаю, как этого добиться.

Например, у меня есть строка MySQL Server@db1com:1111 И это имя хоста db1.com.

Вместо того, чтобы копировать только имя хоста каждый раз, я использую функциональность javascript для извлечения только имени хоста, я имею в виду, как показано ниже

function getHostname() {

    dbiNode = process.argv.slice(2).toString();
    hostname = dbiNode.split(/[@:]/)[1];
    console.log(hostname)
}

getHostname()

А сейчас для автоматического SSH я использую команду ниже


ssh "$(node gethostname.js "MySQL Server@db1:1111")""

И это работает без каких-либо проблем.Здесь я пытаюсь добиться того, чтобы я набрал «MySQL Server @ db1: 1111» в терминале, так или иначе мне нужно заставить мою функцию bash выполнить через .bashrc, где я могу обрабатывать извлечение имени хоста и SSH в него.

Но как, я не понимаю.

Любые ссылки / предложения с благодарностью.

1 Ответ

1 голос
/ 24 сентября 2019

Здесь вам не нужен узел, просто добавьте следующее к вашему .bashrc

MySQL() {
  host="${1##*@}"     # remove everything before @
  host="${host%%:*}"  # remove everything after  :
  ssh "$host"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...