Раковина рыбы : Установите форматированную строку в переменную

#fish #iterm2

Вопрос:

Я хочу открыть терминал с несколькими экземплярами одного и того же сервера. Например, csshX server1 server1 server1

Я пытаюсь присвоить отформатированный список строк одной переменной и использовать его в csshX .

 #!/usr/local/bin/fish
set nmdat (echo 'server1 ' | string repeat -n (echo $countofinstance))
csshX $nmdat

 

Но это не помогает. Я также пытался

 csshX (echo 'server1 ' | string repeat -n (echo $countofinstance))

 

Это тоже не работает.

Ответ №1:

(echo $somevariable) может быть написано более просто, как $somevariable

Попробуйте это: он должен передать команде количество отдельных аргументов:

 set server server1
csshX (string repeat -n $count -N $servern)
 

ДЕМОНСТРАЦИЯ:

 $ set count 5
$ set string foo

$ bash -c 'echo $#; printf '%s\n' "$@"' bash (string repeat -n $count "$string ")
1
foo foo foo foo foo

$ bash -c 'echo $#; printf '%s\n' "$@"' bash (string repeat -n $count $stringn)
6
foo
foo
foo
foo
foo

# with an extra newline

$ bash -c 'echo $#; printf '%s\n' "$@"' bash (string repeat -n $count -N $stringn)
5
foo
foo
foo
foo
foo