У меня есть этот скрипт:

    #!/bin/sh -x

    /bin/echo "Drag folder into Terminal and hit return ->"
    /usr/bin/read folderLocation

    /bin/cp -R "$folderLocation" /Users/my/Desktop/

И это возвращает:

+ /bin/cp -R '' /Users/my/Desktop/
cp: fts_open: No such file or directory

Есть идеи, почему это так?

Спасибо за понимание!

1 ответ1

0

Я получил это на работу, на Debian Gnu/Linux:

#!/bin/sh -x

/bin/echo "Drag folder into Terminal and hit return ->"
read folderLocation

eval "cp -R  -t '/home/my/Desktop' $folderLocation"

Я отбросил путь для чтения (вам может и не понадобиться (read является встроенным в bash и не может найти его в /usr/bin или /bin)

Важные изменения в последней строке:

  • Опция -t, за которой следует целевой каталог, делает cp более надежным.
  • eval необходим из-за кавычек, возвращаемых возвращаемым значением при чтении.

Что касается того, почему вы получаете '' (пустая строка из чтения). Я предполагаю, что это потому, что перетаскивание не работает, это не особенность оболочки, а терминала и файлового менеджера. Какую терминальную программу вы используете?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .