Ваше предположение неверно. Также не имеет для применения сети каким-либо конкретным образом.
VMware выполняет мосты по умолчанию (это «сеть виртуальных машин»), потому что это система, ориентированная на людей, которые запускают несколько виртуальных машин на группе серверов и (в основном) точно знают, что они делают с сетью.
NAT VirtualBox по умолчанию, потому что он предназначен для людей, которые запускают один (или несколько) серверов на настольном ПК и довольно часто мало или совсем ничего не знают о сети.
Я запускаю пару виртуальных машин на VirtualBox, которые используют NAT и мост. (Мост находится в сети, предназначенной только для хоста, поэтому я могу легко добраться до них с моего хоста. NAT обеспечивает легкий доступ серверов к Интернету.)
Проблема решена.
Я попробовал, как показано ниже, все получилось...
var1=$(curl -XPUT 'http://localhost:9200/my_index5/my_type/my_id?pipeline=attachment&pretty' -d @test.json)
echo $var1
В системах с /dev/fd/x
вы также можете сделать:
var1=$(
curl -XPUT 'http://localhost:9200/my_index5/my_type/my_id?pipeline=attachment&pretty' -d @/dev/fd/3 3<< EOF
{ "data" : "$(base64 sample.pdf | tr -d '\n')" }
EOF
)
В зависимости от реализации оболочки данные сохраняются во временном файле или через трубу.
С помощью zsh
или bash
вы также можете сделать следующее:
var1=$(
curl -XPUT 'http://localhost:9200/my_index5/my_type/my_id?pipeline=attachment&pretty' \
-d @<(
printf ' { "data": "'
base64 sample.pdf | tr -d '\n'
printf ' }\n'
)
)
Это было бы немного эффективнее, а также работало бы для команд, выводящих двоичные данные.