Почему бы и нет var=abc;./test.sh "$var" "$var"
?
Или вызовите скрипт с одним аргументом, и скрипт обработает отсутствующее значение:
#!/bin/bash
fieldValue1=$1
fieldValue2=${2:-$1}
...
, затем:./test.sh foo
выводит{"field1"="foo", "field2"="foo"}
Обратите внимание, что это не JSON :используйте двоеточие, не равное:{"field1":"foo", "field2":"foo"}
Также вы оставляете переменные без кавычек, когда назначаете переменную jsonString. Сделай это
jsonString='{"field1":"'"$fieldValue1"'", "field2":"'"$fieldValue2"'"}'
#......................^............^...............^............^
# or
jsonString="{'field1':'$fieldValue1', 'field2':'$fieldValue2'}"
# or
printf -v jsonString '{"field1":"%s","field2":"%s"}' "$fieldValue1" "$fieldValue2"
Также следует защититься от значений, содержащих кавычки:
printf -v jsonString '{"field1":"%s","field2":"%s"}' \
"${fieldValue1//\"/\\\"}" \
"${fieldValue2//\"/\\\"}"
Тогда
$./test.sh 'he said "foo"'
{"field1":"he said \"foo\"","field2":"he said \"foo\""}
На основе обновленных требований. Назначение переменной должно быть отдельным шагом. Вам также не хватает синтаксиса замены команды$(...)
Первый обновленный скрипт:
#!/bin/bash
pairs=()
for ((i=1; i<=$#; i++)); do
value=${!i}
pairs+=( "$(printf '"%s":"%s"' "field$i" "${value//\"/\\\"}")" )
done
IFS=,
echo "{${pairs[*]}}"
Затем вызовите его следующим образом
startDate=1/1/2020
bash test.sh "$startDate" someOtherValue "$startDate" "$(date -u -d "$startDate 1 hour" "+%FT%TZ")" "anotherValue"
и получите этот вывод:
{"field1":"1/1/2020","field2":"someOtherValue","field3":"1/1/2020","field4":"2020-01-01T01:00:00Z","field5":"anotherValue"}
Поскольку он находится в папке загрузок, я бы сказал, что его можно безопасно удалить.
Это выглядит как совершенно обычное дерево исходных текстов ядра, хотя, учитывая общий размер, я думаю, что вы использовали git
, чтобы получить намного больше, чем вам действительно нужно.
В любом случае удаление должно быть безопасным.
... Кроме того, текущее (по состоянию на декабрь 2020 года ядро )4.x — это 4.19, а 5.10 вышло не так давно; если вы все еще на 4.15, может потребоваться другое обновление.