Чтение файла с пробелами и скобками в имени -CLI

Просто установил обновление Parallels версии 11.2.0 (32581), и, похоже, у меня появился новый пакет Parallels Tools. Он больше не содержит файл libprlcompiz_0_9_12_2.so и добавил некоторые другие. Кажется, решить проблему. Unity теперь начинает нормально.

-1
задан 8 February 2018 в 15:53

2 ответа

Обсуждение в комментариях показало, что странное имя файла должно быть передано скрипту или программе, которая сама вызывает другие скрипты или программы с именем файла в качестве параметра. Поэтому закрытие имени файла в кавычках недостаточно, так как оболочка удаляет эти кавычки, а следующий вызов передает имя файла без кавычек, что делает его непригодным.

Итак, моя идея - использовать сценарий оболочки doLogAnalyze для LogAnalyzeRebirth .py, вот так:

#!/bin/bash tmpfile=$(mktemp /tmp/LogAnalyzeRebirth.XXXXXX) # create temporary file cp "$1" "$tmpfile" # copy to temporay file LogAnalyzeRebirth.py -p ./ -x "$tmpfile" # analyze copy rm "$tmpfile" # delete copy

Вызов ./doLogAnalyze "full_logs-10.2.0.103-2018.02.07 (1).bin" должен выполнять задание, независимо от того, сколько других программ используется в основной программе. Никаких изменений в исходных файлах не происходит, как и пожелание OP.

0
ответ дан 17 July 2018 в 21:18

Обсуждение в комментариях показало, что странное имя файла должно быть передано скрипту или программе, которая сама вызывает другие скрипты или программы с именем файла в качестве параметра. Поэтому закрытие имени файла в кавычках недостаточно, так как оболочка удаляет эти кавычки, а следующий вызов передает имя файла без кавычек, что делает его непригодным.

Итак, моя идея - использовать сценарий оболочки doLogAnalyze для LogAnalyzeRebirth .py, вот так:

#!/bin/bash tmpfile=$(mktemp /tmp/LogAnalyzeRebirth.XXXXXX) # create temporary file cp "$1" "$tmpfile" # copy to temporay file LogAnalyzeRebirth.py -p ./ -x "$tmpfile" # analyze copy rm "$tmpfile" # delete copy

Вызов ./doLogAnalyze "full_logs-10.2.0.103-2018.02.07 (1).bin" должен выполнять задание, независимо от того, сколько других программ используется в основной программе. Никаких изменений в исходных файлах не происходит, как и пожелание OP.

0
ответ дан 23 July 2018 в 21:58
  • 1
    Привет, этот сценарий обертки не сработал для меня и привел к тому же, что и раньше, он не извлекает файл bin даже с помощью этого скрипта. Но как сказано выше в комментарии: LogAnalyzeRebirth.py -p ./ -x "$ (printf% q" full_logs-10.2.0.103-2018.02.07 (1) .bin ")" работал на меня. Большое вам спасибо, все вы, ребята, рок! – Imrank 11 February 2018 в 12:02

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

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