Как перенаправить вывод CURL в файл и как параметр функции bash

Programmatically adjusting capability sets

A thread can retrieve and change its capability sets using the capget(2) and capset(2) system calls. However, the use of cap_get_proc(3) and cap_set_proc(3), both provided in the libcap package, is preferred for this purpose. The following rules govern changes to the thread capability sets:

...

  1. The new permitted set must be a subset of the existing permitted set (i.e., it is not possible to acquire permitted capabilities that the thread does not currently have).
  2. The new effective set must be a subset of the new permitted set.

-- capabilities(7)

2
29.07.2019, 15:45
1 ответ

Похоже, вы хотите использовать вывод одной команды более одного раза. В этом случае вам нужно сохранить его в переменной, а затем использовать эту переменную везде, где это необходимо. например. попробуй вот так:

response="$(curl -H "Accept: application/json" -H "Content-Type:application/json" \
  -X POST --data "$data" "$url")"

echo "$response" >> "$LOG"
param=$(json_extract "$jsonkey" "$response")

Другой альтернативой является использование tee, которое отправляет вывод команды в файл, а также на стандартный вывод. Например:

param=$(json_extract "$jsonkey" "$(curl -H "Accept: application/json" \
    -H "Content-Type:application/json" \
    -X POST --data "$data" "$url" | tee -a "$LOG" )")

Лично я считаю, что использование такой переменной, как "$response", приводит к более читабельному и понятному коду. Особенно, когда он позволяет разбивать очень длинные и сложные строки -на несколько коротких, легко -понятных строк.

4
27.01.2020, 22:02

Теги

Похожие вопросы