Есть ли способ безопасно разорвать длинную командную строку, заключенную в кавычки?

Короче :нет.

Драйвер — это часть программного обеспечения, взаимодействующая с ядром операционной системы. Когда вы работаете в мире ядра, взаимодействия не существует. POSIX тоже. Все полностью зависит от ОС -, :архитектуры, подсистем -и того, как они были построены и спроектированы, стандартной библиотеки, предлагаемой ядром разработчику драйвера, между Linux и Windows нет ничего общего.

Единственным способом заставить ваш осциллограф работать под Linux является:

  • с помощью виртуальной машины Windows и перенаправления на нее USB-устройства (возможно с помощью virtualbox или qemu ).

  • выполнив обратный инжиниринг при использовании его с рабочей станцией Windows :проанализируйте обмены USB, попытайтесь угадать используемый протокол и переданную команду для выполнения той или иной операции... это очень тяжелая и долгая работа...

0
07.01.2020, 20:03
2 ответа

Рассматривали ли вы возможность завершения строки одинарной кавычкой, за которой сразу же следует обратная косая черта, и начало следующей строки одинарной кавычкой (без пробелов! ), вроде

...'\
'...
0
28.01.2020, 02:57

Если вы используете bash для своего сценария вместо sh, вы можете использовать массив для хранения аргументов, чтобы найти --произвольные пробелы разрешены в литерале массива.

find_args=(
   .
    -iname "*.mp4"
    -exec sh -c '
        ffmpeg \
            -i "$1" \
            -c:a "$2" \
            -c:v "$3" \
            -vf "subtitles=${1%.*}.$4:'\''force_style=fontsize=$5,fontname=$6'\''" \
            -map_metadata \
            -1 "$1.${1##*.}" \
            -hide_banner
    ' -- "{}" "$a" "$v" "$exts" "$f" "$n" \;
)

sudo find "${find_args[@]}"

Если вы получаете ffmpeg: not found, значит, он расположен в каталоге, который не указан в корневом каталоге PATH. Вместо этого используйте полный путь к ffmpeg.

0
28.01.2020, 02:57

Теги

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