Как выполнить команду, сохраненную в переменной в Linux, и сохранить результат в новой переменной [дубликат] ⇐ Linux
Как выполнить команду, сохраненную в переменной в Linux, и сохранить результат в новой переменной [дубликат]
Я выполняю ряд команд и надеюсь добиться следующего эффекта:
[*]Мне нужно повторить команду перед выполнением. [*]Выполните команду и сохраните результаты в переменной bash, включая неверные результаты. [*]Получить результаты выполнения и статус выполнения, чтобы определить, нужно ли выполнять последующие команды
Аналогично следующему:
[*]cmd_var.sh
#!/bin/bash бревно(){ echo "$(date +"[%Y%m%d %H:%M:%S]:")" "$@" } grep_proc_cmd="ps -ef | grep бесконечный_loop.sh | grep -v grep" log "команда exec: $grep_proc_cmd" exec_ret=$($grep_proc_cmd 2>&1) если [$? != 0 ];тогда log «Ошибка выполнения: $exec_ret» выход 1 фи log "выполнение успешно: ret: [$exec_ret]" [*]Фактическое При выполнении приведенного выше сценария возникает следующая ошибка:
$ bash var_cmd.sh [20240301 01:56:26]: команда exec: ps -ef | grep бесконечный_loop.sh | греп -v греп [20240301 01:56:26]: сбой выполнения: ошибка: опция мусора Использование: пс [варианты] Попробуйте 'ps --help ' или 'ps --help ' для получения дополнительного текста справки. Более подробную информацию см. в ps(1). [*]Ожидать Результат выполнения командной переменной в терминале сохраняется в переменной результата (в exec_ret).
[20240301 01:56:26]: команда exec: ps -ef | grep бесконечный_loop.sh | греп -v греп [20240301 01:56:26]: успешно выполнено: ret: [ec2user 20384 4185646 0 01:53 оч./16 00:00:00 bash бесконечный_loop.sh] Подскажите, пожалуйста, как добиться желаемого эффекта и далее, бывает ли ситуация, когда команда сохранения переменной применима ко всем переменным.
Например:
kill_cmd="ps -ef | grep A | grep -v grep | awk '{print \$2}' | xargs sudo kill -9" cp_cmd="cp А Б" [*]другой способ #!/bin/bash grep_proc_func(){ log "exec: ps -ef | grep бесконечный_loop.sh | grep -v grep" exec_ret=$(ps -ef | grep бесконечный_loop.sh | grep -v grep 2>&1) exec_status=$? } основной(){ grep_proc_func если [ "$exec_status" != 0 ];то log «Ошибка выполнения: $exec_ret» выход 1 фи log "выполнение успешно: ret: $exec_ret" # другая функция cmd } главный "$@"
Я выполняю ряд команд и надеюсь добиться следующего эффекта:
[*]Мне нужно повторить команду перед выполнением. [*]Выполните команду и сохраните результаты в переменной bash, включая неверные результаты. [*]Получить результаты выполнения и статус выполнения, чтобы определить, нужно ли выполнять последующие команды
Аналогично следующему:
[*]cmd_var.sh
#!/bin/bash бревно(){ echo "$(date +"[%Y%m%d %H:%M:%S]:")" "$@" } grep_proc_cmd="ps -ef | grep бесконечный_loop.sh | grep -v grep" log "команда exec: $grep_proc_cmd" exec_ret=$($grep_proc_cmd 2>&1) если [$? != 0 ];тогда log «Ошибка выполнения: $exec_ret» выход 1 фи log "выполнение успешно: ret: [$exec_ret]" [*]Фактическое При выполнении приведенного выше сценария возникает следующая ошибка:
$ bash var_cmd.sh [20240301 01:56:26]: команда exec: ps -ef | grep бесконечный_loop.sh | греп -v греп [20240301 01:56:26]: сбой выполнения: ошибка: опция мусора Использование: пс [варианты] Попробуйте 'ps --help ' или 'ps --help ' для получения дополнительного текста справки. Более подробную информацию см. в ps(1). [*]Ожидать Результат выполнения командной переменной в терминале сохраняется в переменной результата (в exec_ret).
[20240301 01:56:26]: команда exec: ps -ef | grep бесконечный_loop.sh | греп -v греп [20240301 01:56:26]: успешно выполнено: ret: [ec2user 20384 4185646 0 01:53 оч./16 00:00:00 bash бесконечный_loop.sh] Подскажите, пожалуйста, как добиться желаемого эффекта и далее, бывает ли ситуация, когда команда сохранения переменной применима ко всем переменным.
Например:
kill_cmd="ps -ef | grep A | grep -v grep | awk '{print \$2}' | xargs sudo kill -9" cp_cmd="cp А Б" [*]другой способ #!/bin/bash grep_proc_func(){ log "exec: ps -ef | grep бесконечный_loop.sh | grep -v grep" exec_ret=$(ps -ef | grep бесконечный_loop.sh | grep -v grep 2>&1) exec_status=$? } основной(){ grep_proc_func если [ "$exec_status" != 0 ];то log «Ошибка выполнения: $exec_ret» выход 1 фи log "выполнение успешно: ret: $exec_ret" # другая функция cmd } главный "$@"
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Загрузите базу данных SQL, сохраненную в документе MS Word, в редактор документов Syncfusion.
Anonymous » » в форуме C# - 0 Ответы
- 37 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как загрузить только сохраненную версию элемента списка списка SharePoint с помощью CSOM?
Anonymous » » в форуме C# - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-