Мне нужно изменить простой сценарий bash на go через файлы и добавить текст в конец каждого файла с именем переменной файла. Вот пример файла Nag ios .cfg ... пока что я получил что-то вроде этого:
#!/bin/bash
list=$(ls /root/user/test/ | sed "s/\.cfg//")
for servery in `/root/user/test/*.cfg`; do
for $list; do
echo `
define service {
host_name $list
service_description All_fs_free_space
check_command check_nrpe!check_all_disks!3% 1%
use user-disk
}` >> /etc/nagios3/conf.d/servers/test/$servery
done
done
, который, к сожалению, не работал из-за кавычек ...? Есть ли лучшее решение, как этого добиться? Спасибо.
Отладочные данные для решения Пола Ходжеса:
root@bla:~/blabla# ./add2.sh
++ fmt='
define service {
host_name %s
service_description All_fs_free_space
check_command check_nrpe!check_all_disks!3%% 1%%
use user-disk
}'
++ for file in '/root/user/test/*.cfg'
++ cfg='*.cfg'
++ printf '
define service {
host_name %s
service_description All_fs_free_space
check_command check_nrpe!check_all_disks!3%% 1%%
use user-disk
}' '*'
./add2.sh: line 14: /root/blabla/test/servers/$cfg: ambiguous redirect