2016-07-27 3 views
-2

Я пытаюсь выполнить команду с несколькими параметрами в Баш скрипт:Выполнение команды с несколькими параметрами в Баш

#!/bin/bash 
read a[{1..3}] <<< $(echo /opt/CPshrd-R77/bin/cpview history off); echo "${a[1]} ${a[2]} ${a[3]}" 
#"/opt/CPshrd-R77/bin/cpview history off" 

for ((i =0 ; i < ${#a[@]} ; i++)) 
do 
     printf "\n Running '$(a[$1]}' \n\n" 
     eval "${a[$i]}" 
done 

я взломал вместе этот скрипт пару примеров на StackOverflow. Случается, что утилита cpview вызывается вместо полной команды, завершающей историю. Cpview - это утилита Check Point, используемая для отображения CPU, памяти, сетевых характеристик, производительности брандмауэра и т. Д. Его ошибка и утечка памяти, поэтому мне нужно отключить ее.

+1

Зачем вам нужен весь этот скрипт для запуска команды '/ opt/CPshrd-R77/bin/cpview history off'? – anubhava

+1

... здесь много чего не так, но почти не стоит рвать его по частям; ответы на эти вопросы обычно относятся к категории «не делай этого». –

+0

(Я имею в виду, что в мире возможно использование 'read a [{1..3}] <<< $ (echo/opt/CPshrd-R77/bin/cpview history off)'? Я не могу задумать сценарий, где он будет более корректным, чем 'read -aa <<<"/opt/CPshrd-R77/bin/cpview history off "', даже если вы * * хотели прочитать каждое слово в команде в отдельный элемент массива ... но также нет очевидной причины, почему вам нужен массив вообще. И оценивая каждое слово в этом массиве, как если бы это была отдельная команда? Почему это когда-нибудь было бы полезно?) –

ответ

-1

Оказывается, это было вызвано двоичным кодом cpview. Я работал над проблемой, запустив скрипт bash, чтобы убить процесс.

Смежные вопросы