Using two here strings
I can use herestrings to pass a string to a command, eg
cat <<< "This is a string"
How can I use herestrings to pass two strings to a command? Как я могу сделать что-то вроде
### not working
diff <<< "string1" "string2"
### working but overkill
echo "string1" > file1
echo "string2" > file2
diff file1 file2
2 ответа
Решение
Вы не можете использовать две строки здесь в качестве ввода для одной и той же команды. По сути, последний заменит все остальные. Демонстрация:
cat <<< "string 1" <<< "string 2" <<< "string 3"
# only shows "string 3"
С другой стороны, если вы действительно хотите использовать два непосредственных входа, вы можете сделать это следующим образом:
diff <(echo "string 1") <(echo "string 2")
Вы можете просто объединить две строки:
cat <<< "string1""string2"
(не недостаток места между двумя). Строка here теперь состоит из одного слова, содержимое которого является содержимым двух строк.