问题描述
我想用同一服务器的多个实例打开终端。例如,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))
这不起作用。
解决方法
(echo $somevariable)
可以更简单地写成 $somevariable
试试这个:它应该向命令传递 count 个单独的参数:
set server server1
csshX (string repeat -n $count -N $server\n)
演示:
$ 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 $string\n)
6
foo
foo
foo
foo
foo
# with an extra newline
$ bash -c 'echo $#; printf \'%s\\n\' "$@"' bash (string repeat -n $count -N $string\n)
5
foo
foo
foo
foo
foo