Синтаксис $ ()
называется подстановкой команды , и оболочка обрабатывает его, сначала выполняя команду в круглых скобках, а затем присваивая ее стандартный вывод (с удалением завершающих символов новой строки) на x1
.
Другими словами, команда выполняется еще до того, как вы выведете "$ x1"
.
Я нашел это в руководстве по sudo. Вы можете использовать одну команду sudo, выполнив:
sudo sh -c 'tar cf - directory | 7za a -si directory.tar.7z'