(Nautilus Scripts) $ NAUTILUS_SCRIPT_SELECTED_FILE_PATHS; имеют проблемы с пространством

Я исправил это самостоятельно, отредактировав файл / etc / default / grub

GRUB_CMDLINE_LINUX=" rootdelay=3 "
GRUB_DISABLE_LINUX_UUID=true

С только первым, этого было недостаточно. Я даже попробовал 130, как было сказано ранее. Затем я отключил UUID со второй командой. Это был корневой раздел LVM в любом случае, поэтому данные UUID были бессмысленными.

1
задан 14 January 2013 в 20:40

3 ответа

Вам не нужно возиться с IFS:

echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read filename; do
    unzip "$filename" -d temp
done

У меня была аналогичная проблема, и оказалось, что эхо сохраняет символы новой строки в двойных кавычках, но без кавычек они меняют их на пробелы.

2
ответ дан 25 May 2018 в 02:27

Используя $@ вместо $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS в сценариях Nautilus, можно решить проблему с новыми разделителями строк (которые используются как разделители в $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS и $NAUTILUS_SCRIPT_SELECTED_URIS).

Итак, код будет выглядеть так:

#!/bin/bash

for line in "$@"; do
   if [[ "$line" = "" || "$line" = " " ]]; then
      exit
   else
      unzip "$line" -d "temp"
   fi
done

Кроме того, это удобно, когда нам нужно просто перейти к другому приложению:

#!/bin/sh

baobab "$@"
0
ответ дан 25 May 2018 в 02:27

Поместите одинарные кавычки вокруг имени переменной, например:

#!/bin/bash

for line in '$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS'; do
   if [[ "$line" = "" || "$line" = " " ]]; then
      exit
   else
      unzip "$line" -d "temp"
   fi
done
-1
ответ дан 25 May 2018 в 02:27
  • 1
    $ line становится $ NAUTILUS_SCRIPT_SELECTED_FILE_PATHS – Leon Vitanos 14 January 2013 в 20:33
  • 2
    Тогда попробуйте двойные кавычки - возможно, у меня есть неправильный тип, указанный в моем ответе. – Clive van Hilten 14 January 2013 в 20:45
  • 3
    Xmm с двойными кавычками строка $ принимает полный путь к файлу, но с новой пустой строкой, поэтому распаковка завершается с ошибкой. line = $ (echo $ line | tr '\ n') не помогло. Решение Hakermanias решает проблему;) – Leon Vitanos 14 January 2013 в 21:00

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

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