Файл .sh не может быть выполнен, явно не звоня sh

Можно использовать xargs:

 cat /path/to/file | xargs apt-mark auto

Это должно работать, если существует одно имя пакета на строку в текстовом файле /path/to/file.

Другая опция состояла бы в том, чтобы использовать для цикла:

 for pkg in `cat /path/to/file`; do apt-mark auto $pkg; done

Второй путь мог бы быть полезным, если у Вас есть подобная проблема, где команду нельзя назвать со списком параметров, но необходимо назвать его однажды для каждого параметра, который Вы имеете. Но в Вашем случае дело не в этом изящный, конечно, … :)

Btw я предполагаю, что Вы используете удар.

Примечание: В моей системе apt-mark --help говорит:

Usage: apt-mark [options] {markauto|unmarkauto} packages...

И также:

apt-mark is deprecated, use apt-get markauto/unmarkauto.
3
21.08.2018, 06:04
2 ответа

Файловая система run.sh идет был смонтирован noexec.

13
27.01.2020, 21:08
  • 1
    Это - файловая система, с которой я нахожусь в, скопирован /etc/fstab, это там, я должен посмотреть? /dev/sda4 /mnt/data auto rw,user,auto 0 0 –  fury 10.01.2012, 02:53
  • 2
    Нет, необходимо всегда смотреть на самое точное представление, доступное через mount. –  Ignacio Vazquez-Abrams 10.01.2012, 03:05
  • 3
    Вы правы!!! mount команда говорит /dev/sda4 on /mnt/data type ext4 (rw,noexec,nosuid,nodev), но как это может быть? –  fury 10.01.2012, 03:11
  • 4
    Как описано в mount(1) страница справочника, user подразумевает noexec,nosuid,nodev. Необходимо будет явно добавить exec к опциям монтирования переопределить это. –  Ignacio Vazquez-Abrams 10.01.2012, 03:14
  • 5
    Это теперь работает после изменения /etc/fstab и перезагрузка. Огромное спасибо, я, никогда не был бы не понимал, что были псевдонимы для нескольких значений. –  fury 10.01.2012, 03:26

Мое предположение то, что #! строка имеет некоторый странный символ на нем, возможно, ASCII Nul или другой непечатаемый символ, клавиша Backspace - что-то, возможно. Некоторые оболочки имели проблему с MS-DOS/Windows два байта (перевод строки возврата каретки) маркеры конца строки. Современные редакторы могут исследовать файлы и решить, являются ли они стилем Unix (перевод строки) конец строк, или стиль Windows (и возможно даже стиль Mac) текстовые файлы. Возможно, Вы перепутали своего редактора и выписали текстовый файл Windows.

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

1
27.01.2020, 21:08
  • 1
    я пытался исследовать то, что Вы объяснили, и переписал с нуля файл, без вставки копии, с редактором Linux. Я также пытался поместить пустую строку в конце файла. Но никакая удача. –  fury 10.01.2012, 03:02
  • 2
    Это обычно дает "плохой интерпретатор" ошибка, не "отклоненное разрешение". –  Ignacio Vazquez-Abrams 10.01.2012, 03:06

Теги

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