Я не думаю, что существует способ получить точное поведение -i
, но я имею noclobber
набор, который уже предотвращает перезапись существующие файлы.
Посмотрите эту страницу для примера использования.
Можно испытать команду как это (и если Вы любите ее, включаете ее в Ваш файл запуска),
$ set -o noclobber
Пример:
$ ls > ls.out
$ set -o noclobber
$ ls > ls.out
bash: ls.out: cannot overwrite existing file
$
Обновление:
Поскольку @jsbillings упоминает в полезном комментарии ниже, для переопределения noclobber
в bash
можно использовать >|
Так как я, прежде всего, использую tcsh
(a csh
вариант), оператор переопределения >!
Пока Вы понимаете опасности, можно передать вывод по каналу к оболочке:
wget -O - http://foo.com/somescript | sh
Можно сделать это в нажатии или вытянуть путь.
Если Вы хотите сделать это получение по запросу путем, можно использовать wget
или curl
. От каждого хоста сделайте:
wget -O- http://foo.com/somescript | bash
или
bash <(wget -O- http://foo.com/somescript)
Однако могло бы быть легче сделать это нажатие путь. От центрального хоста сделайте:
for host in host1 host2 host3; do
cat script.sh | ssh "$host" bash
done
Другая опция использовала бы puppet
или chef
. Но в зависимости от того, что Вы делаете, который мог бы быть небольшим излишеством.