Чтобы убедиться, что вы создали папку /mnt/Media? Кстати, здесь есть аналогичный случай, может быть хорошо проверить: http://ubuntuforums.org/archive/index.php/t-1607610.html
Прочитайте последние несколько потоков, он решил путем удаления Microsoft Live Essential. Вы также можете проверить, включен ли режим NETBIOS на ПК Windows, и нет доступа к брандмауэру из сети на внешний жесткий диск.
я не знаком в tcsh, так что может быть хорошим решением для этого в tcsh.
, что сказал, я знаком с bash, и можете увидеть, что может быть причиной этой проблемы. Обратите внимание на цитирование:
[Ф1]это внешний слой котировки и кроме того, внутренний слой котировок для [ф10]. Предположительно, вы используете внутренний слой, потому что это, как это будет выглядеть, если вы на самом деле набрали команду в командной строке.
таким образом, раковина выполняет различные дополнения в командной строке, как переменная расширения, подстановочных и т. д. Так в команду:
[Ф2]оболочка будет расширяться [F11], чтобы его содержание, проанализировать поле разделения, выделения содержание [F12] для отдельных слов и подстановки расширения (или подстановка), где команда не выполняется:
[Ф3]обратите внимание, как кавычки [от f13] предотвратить ошибку? Но нельзя использовать цитаты в ваш скрипт, так как цитаты предотвратит расщепление поле, и вы опираетесь на поле разделения, так что различные варианты [ф14] ([ф15], [ф16], и т. д.) передаются как отдельные аргументы [зг17].
вот демо отличия С и без кавычек:
[Ф4]я представляю, как это может работать, если Вы использовали:
[ф5], однако такие риски подстановки расширения, если Вы не используете [ф18], и рабочая папка имеет файлы с [зг19]:
[ф6]опять же, я не достаточно опытный в tcsh, чтобы предложить хорошее решение, но я знаю, что достойное решение в bash:
в bash, ваш скрипт будет выглядеть так:
[ф7]я сделал несколько изменений. Вы назначили [20 фунтов], чтобы [клавиши f21], но затем петли всех аргументов (по сути, это то, что [ф22] будет делать), но без использования этих аргументов в цикле, который не имеет смысла - второй аргумент скрипта игнорируется, но третий аргумент используется как параметр. Приведенный фрагмент кода на Python, я буду считать только первый аргумент-это идентификатор и остальные варианты [ф23].
теперь, используя массив вот так:
[ф8]позволяет расширять на каждое отдельное слово в массиве, при этом не рискуя местах разделения или именем поколения, используя [ф24] в bash:
[F9] икаждый аргумент прекрасно сохранились.
Я не знаком с tcsh, поэтому в tcsh может быть хорошее исправление.
Это говорит о том, что я знаком с bash и вижу, что может вызвать эту проблему. Обратите внимание на цитату здесь:
set OPT="-r -c -nH -np -nd -e robots=off -P PATH/$ID -A 'pattern*.extension' -a $ID.log"
Существует внешний слой кавычек и, кроме того, внутренний слой кавычек для pattern*.expansion. Предположительно, вы используете внутренний слой, потому что так оно и будет выглядеть, если вы действительно набрали команду в оболочке.
Как это работает, оболочка выполняет различные расширения в командной строке, например переменную расширение, расширение подстановочных знаков и т. д. Таким образом, в команде, подобной:
wget $OPT ...
, оболочка будет расширять $OPT до ее содержимого, выполнять разделение поля, разделяя содержимое $OPT на отдельные слова, и расширением подстановочных знаков (или globbing), в котором команда не работает:
> set foo="'*'"
> echo $foo
echo: No match.
> echo "$foo"
'*'
Обратите внимание, что кавычки вокруг $foo предотвратили ошибку? Но вы не можете использовать кавычки в своем сценарии, поскольку кавычки также предотвращают разделение поля, и вы полагаетесь на разделение поля, чтобы различные опции в $OPT (-r, -c и т. Д.) Передавались как отдельные аргументы wget.
Ниже приведено описание различий с кавычками и без них:
> printf "|%s|\n" "$OPT"
|-r -c -nH -np -nd -e robots=off -P PATH/foo -A 'pattern*.extension' -a foo.log|
> printf "|%s|\n" $OPT
printf: No match.
> printf "|%s|\n" -r -c -nH -np -nd -e robots=off -P PATH/$ID -A 'pattern*.extension' -a $ID.log
|-r|
|-c|
|-nH|
|-np|
|-nd|
|-e|
|robots=off|
|-P|
|PATH/foo|
|-A|
|pattern*.extension|
|-a|
|foo.log|
Я полагаю, это может сработать, если вы использовали:
set OPT="-r -c -nH -np -nd -e robots=off -P PATH/$ID -A pattern*.extension -a $ID.log"
Но это может повлиять на расширение подстановочных знаков, если вы не используете "$OPT", а рабочий каталог имеет файлы, соответствующие pattern*.extension:
> touch pattern-abc.extension
> printf "|%s|\n" $OPT
printf: No match.
> set set OPT="-r -c -nH -np -nd -e robots=off -P PATH/$ID -A pattern*.extension -a $ID.log"
> printf "|%s|\n" $OPT
|-r|
|-c|
|-nH|
|-np|
|-nd|
|-e|
|robots=off|
|-P|
|PATH/foo|
|-A|
|pattern-abc.extension| <---- tcsh expanded pattern*.extension
|-a|
|foo.log|
Опять же, я недостаточно квалифицирован в tcsh, чтобы предложить хорошее решение, но я знаю достойное решение в bash:
В bash ваш скрипт будет выглядеть так:
#!/bin/bash
ID=$1 #just an ID for subfolders
shift
OPT2=("$@") #additional options that can be passed to wget
OPT=(-r -c -nH -np -nd -e robots=off -P PATH/"$ID" -A 'pattern*.extension' -a "$ID".log)
OOP=(--progress=bar:force --no-check-certificate)
echo wget "${OPT[@]}" "${OOP[@]}" "${OPT2[@]}" "https://.../$ID/"
wget "${OPT[@]}" "${OOP[@]}" "${OPT2[@]}" "https://.../$ID/"
Здесь я внес несколько изменений. Вы назначили $3 на OPT2, но затем перебираете все аргументы (фактически, это то, что while ($1 != '') ... shift будет делать), но без использования этих аргументов в цикле, что не имеет смысла - второй аргумент сценарий эффективно игнорируется, но третий аргумент используется как опция. Учитывая фрагмент Python, я предполагаю, что только первый аргумент - это идентификатор, а остальные - параметры wget.
Теперь, используя такой массив:
OPT=(-r -c -nH -np -nd -e robots=off -P PATH/"$ID" -A 'pattern*.extension' -a "$ID".log)
Позволяет нам расширять каждое отдельное слово в массиве, не подвергая риску разбиение поля или генерации имени файла, используя "${OPT[@]}" в bash:
$ printf "|%s|\n" "${OPT[@]}"
|-r|
|-c|
|-nH|
|-np|
|-nd|
|-e|
|robots=off|
|-P|
|PATH/foo|
|-A|
|pattern*.extension|
|-a|
|foo.log|
Каждый аргумент отлично сохраняется.
Я не знаком с tcsh, поэтому в tcsh может быть хорошее исправление.
Это говорит о том, что я знаком с bash и вижу, что может вызвать эту проблему. Обратите внимание на цитату здесь:
set OPT="-r -c -nH -np -nd -e robots=off -P PATH/$ID -A 'pattern*.extension' -a $ID.log"
Существует внешний слой кавычек и, кроме того, внутренний слой кавычек для pattern*.expansion. Предположительно, вы используете внутренний слой, потому что так оно и будет выглядеть, если вы действительно набрали команду в оболочке.
Как это работает, оболочка выполняет различные расширения в командной строке, например переменную расширение, расширение подстановочных знаков и т. д. Таким образом, в команде, подобной:
wget $OPT ...
, оболочка будет расширять $OPT до ее содержимого, выполнять разделение поля, разделяя содержимое $OPT на отдельные слова, и расширением подстановочных знаков (или globbing), в котором команда не работает:
> set foo="'*'"
> echo $foo
echo: No match.
> echo "$foo"
'*'
Обратите внимание, что кавычки вокруг $foo предотвратили ошибку? Но вы не можете использовать кавычки в своем сценарии, поскольку кавычки также предотвращают разделение поля, и вы полагаетесь на разделение поля, чтобы различные опции в $OPT (-r, -c и т. Д.) Передавались как отдельные аргументы wget.
Ниже приведено описание различий с кавычками и без них:
> printf "|%s|\n" "$OPT"
|-r -c -nH -np -nd -e robots=off -P PATH/foo -A 'pattern*.extension' -a foo.log|
> printf "|%s|\n" $OPT
printf: No match.
> printf "|%s|\n" -r -c -nH -np -nd -e robots=off -P PATH/$ID -A 'pattern*.extension' -a $ID.log
|-r|
|-c|
|-nH|
|-np|
|-nd|
|-e|
|robots=off|
|-P|
|PATH/foo|
|-A|
|pattern*.extension|
|-a|
|foo.log|
Я полагаю, это может сработать, если вы использовали:
set OPT="-r -c -nH -np -nd -e robots=off -P PATH/$ID -A pattern*.extension -a $ID.log"
Но это может повлиять на расширение подстановочных знаков, если вы не используете "$OPT", а рабочий каталог имеет файлы, соответствующие pattern*.extension:
> touch pattern-abc.extension
> printf "|%s|\n" $OPT
printf: No match.
> set set OPT="-r -c -nH -np -nd -e robots=off -P PATH/$ID -A pattern*.extension -a $ID.log"
> printf "|%s|\n" $OPT
|-r|
|-c|
|-nH|
|-np|
|-nd|
|-e|
|robots=off|
|-P|
|PATH/foo|
|-A|
|pattern-abc.extension| <---- tcsh expanded pattern*.extension
|-a|
|foo.log|
Опять же, я недостаточно квалифицирован в tcsh, чтобы предложить хорошее решение, но я знаю достойное решение в bash:
В bash ваш скрипт будет выглядеть так:
#!/bin/bash
ID=$1 #just an ID for subfolders
shift
OPT2=("$@") #additional options that can be passed to wget
OPT=(-r -c -nH -np -nd -e robots=off -P PATH/"$ID" -A 'pattern*.extension' -a "$ID".log)
OOP=(--progress=bar:force --no-check-certificate)
echo wget "${OPT[@]}" "${OOP[@]}" "${OPT2[@]}" "https://.../$ID/"
wget "${OPT[@]}" "${OOP[@]}" "${OPT2[@]}" "https://.../$ID/"
Здесь я внес несколько изменений. Вы назначили $3 на OPT2, но затем перебираете все аргументы (фактически, это то, что while ($1 != '') ... shift будет делать), но без использования этих аргументов в цикле, что не имеет смысла - второй аргумент сценарий эффективно игнорируется, но третий аргумент используется как опция. Учитывая фрагмент Python, я предполагаю, что только первый аргумент - это идентификатор, а остальные - параметры wget.
Теперь, используя такой массив:
OPT=(-r -c -nH -np -nd -e robots=off -P PATH/"$ID" -A 'pattern*.extension' -a "$ID".log)
Позволяет нам расширять каждое отдельное слово в массиве, не подвергая риску разбиение поля или генерации имени файла, используя "${OPT[@]}" в bash:
$ printf "|%s|\n" "${OPT[@]}"
|-r|
|-c|
|-nH|
|-np|
|-nd|
|-e|
|robots=off|
|-P|
|PATH/foo|
|-A|
|pattern*.extension|
|-a|
|foo.log|
Каждый аргумент отлично сохраняется.