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 теперь состоит из одного слова, содержимое которого является содержимым двух строк.

Другие вопросы по тегам