diff --git a/cssh b/cssh index 3e364b4..28d6438 100755 --- a/cssh +++ b/cssh @@ -9,8 +9,9 @@ function display_help() { USAGE $scriptname [user@]host [options] -Hormis l'argument user@host, il ne faut spécifier que des options. Sinon, le -comportement n'est pas défini." +En principe, hormis l'argument user@host, il ne faudrait spécifier que des +options. Dans le cas où d'autres arguments seraient spécifiés, les meilleurs +efforts sont faits pour lancer ces commandes avant screen." } if [ $# -eq 1 -a "$1" == --help ]; then @@ -18,7 +19,12 @@ if [ $# -eq 1 -a "$1" == --help ]; then exit 0 fi -exec "$scriptdir/ussh" -t "$@" -- /bin/bash -c \'' +vars="$("$scriptdir/ussh" --parse "$@")" || die +eval "$vars" +[ "${#hosts[*]}" -gt 0 ] || die "Vous devez spécifier l'hôte sur lequel se connecter" + +cmd="'$(quoted_args "${args[@]}") +"' function __ask() { local r read -p "$1" -t 2 r @@ -65,3 +71,7 @@ Voulez-vous lancer une session screen? [On] "; then __auto_screen '\' + +for host in "${hosts[@]}"; do + ${exec:+exec} "$ssh" "${options[@]}" -t "$host" -- /bin/bash -c "$cmd" +done