Выполнить команду и сохранить все в переменной в bash

Я не думаю, что вы могли бы сделать это обычным способом.

Но вы можете подделать путь как USB-накопитель.

Попробуйте следующее:

  1. Подключите любой USB-накопитель.
  2. Установите его в какой-то момент. Скажите / media / usb
  3. Смонтируйте другой каталог поверх него: sudo mount --bind / path / to / other / dir / media / usb

Программное обеспечение рассмотрел бы это как USB-накопитель. Хотя вы не можете использовать программное обеспечение , которое выполняло бы некоторые низкоуровневые вещи (например, Unetbootin).

Обратите внимание: вам придется дважды umount / media / usb , чтобы отключить исходный USB-накопитель.

3
20.05.2018, 15:02
2 ответа
TAROUTPUT=$(tar -cf arch.tar /path/to/dir 2>&1)
this_is_the_tar_exit_code=$?
6
27.01.2020, 21:18

Si desea separar stdoutdestderr:

craft@engine:~$ tar -cf arch.tar /path/to/dir 1>/tmp/tar_stdout 2>/tmp/tar_stderr; RETCODE=$( echo ${?} );
craft@engine:~$ stdout_var=$( cat /tmp/tar_stdout )
craft@engine:~$ stderr_var=$( cat /tmp/tar_stderr )
craft@engine:~$ echo -e "STDOUT : ${stdout_var}\nSTDERR : ${stderr_var}\nCommand Status: ${RETCODE}"
  • 1>/tmp/tar _stdout :guarda la salida stdouten un archivo temporal.
  • 2>/tmp/tar _stderr :guardar stderrla salida en un archivo.
  • El código de retorno del comando (sale del estado )se guarda en la variable ${?}.
3
27.01.2020, 21:18

Теги

Похожие вопросы