Я хотел бы выполнить несколько команд с помощью BASH. Мой первый вопрос заключается в том, почему следующая команда не выполняется, когда из CMD Line работает нормально.Как выполнить команду из BASH
# Variables
ArchiverLog="/tmp/JSM04-Archiver-GC.log"
Archiver=$(ps -ef | grep 'java' | grep -i 'archiver-component' | awk '{print "jstat -gcutil "$2" 200 10 >> "}')
echo $Archiver
echo $ArchiverLog
Archiver="$Archiver $ArchiverLog"
echo Running jstats For Archiver ...............................
command $Archiver
Что бы я попробовать «>>» не передается, как и ожидалось, и команда не работает ..
command $Archiver
+ command jstat -gcutil 30467 200 10 '>>' /tmp/JSM04-Archiver-GC.log
+ jstat -gcutil 30467 200 10 '>>' /tmp/JSM04-Archiver-GC.log
invalid argument count
Как передать «>>» успешно ??
Второй вопрос, я хотел бы запустить эту команду для трех разных процессов, что лучший способ сделать это, я хочу запускать их в parrellel в одно и то же время, будет ли это 3 отдельных сценария BASH?
Спасибо.
Вы делаете свою жизнь труднее, чем она должна быть. Просто не добавляйте перенаправление к строке в awk thingy. – Mat
Пробовал удалить это - все еще не удается. – Boardman411
Удалить >> из awk. Не делайте Archiver = "$ Archive Archivelog". В командной части используйте: - команду $ Archiver >> $ Archivelog –