Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 14.09.2016
Сообщений: 153

Первая строка скрипта bash

21.04.2019, 17:20. Показов 1638. Ответов 10

Студворк — интернет-сервис помощи студентам
Что будет, если в bash скрипте не будет первой строки
Bash
1
#!/bin/bash
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.04.2019, 17:20
Ответы с готовыми решениями:

Получить результат выполнения скрипта perl во время выполнения скрипта bash
доброго времени суток. знатоки, нужна ваша помощь- подскажите как из bash-скрипта вызвать perl-скрипт, получить результат его выполнения и...

At команды из bash скрипта
Прошу помощи, сам разобраться не могу. Стоит задача отправить смс любым способом из баш-скрипта при наступлении некоторого события. ...

Запуск и остановка bash - скрипта
есть bash - скрипт #!/bin/bash while true do php test.php sleep 3s done как сделать комманды start stop и restart ?

10
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
21.04.2019, 17:37
будет конец света!
-------------------------------
а если серьезно, то нужно будет указывать под управлением чего выполнять скрипт (если нужно конкретно "именно вот это"), либо система сама будет "угадывать", чем запускать его
0
10 / 6 / 6
Регистрация: 05.11.2018
Сообщений: 32
21.04.2019, 19:09
Если вообще не ставить оболочку, то это будет обычный файл.
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
21.04.2019, 21:02
Цитата Сообщение от Vladislav1ADM Посмотреть сообщение
это будет обычный файл
"а пацаны-то и не знают!"...
Code
1
2
3
4
5
6
7
dmitry@my-notebook:~$ cd /tmp
dmitry@my-notebook:/tmp$ echo "echo OK" > test_script
dmitry@my-notebook:/tmp$ chmod +x test_script
dmitry@my-notebook:/tmp$ cat test_script
echo OK
dmitry@my-notebook:/tmp$ ./test_script
OK
0
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
22.04.2019, 01:37
Цитата Сообщение от Vladislav1ADM Посмотреть сообщение
Если вообще не ставить оболочку
То система:
1. По первому/ым символу/ам определит, бинарник это или текстовый файл
2. Если бинарник, запустит напрямую
3. Если текствоый, запустить shell-ом по умолчанию (bash/ksh...)
0
10 / 6 / 6
Регистрация: 05.11.2018
Сообщений: 32
22.04.2019, 09:27
Цитата Сообщение от Dmitry Посмотреть сообщение
"а пацаны-то и не знают!"...
Code
1
2
3
4
5
6
7
dmitry@my-notebook:~$ cd /tmp
dmitry@my-notebook:/tmp$ echo "echo OK" > test_script
dmitry@my-notebook:/tmp$ chmod +x test_script
dmitry@my-notebook:/tmp$ cat test_script
echo OK
dmitry@my-notebook:/tmp$ ./test_script
OK
О_о и правда, я и не знал об этом. Спасибо

Добавлено через 13 минут
Цитата Сообщение от Kukstyler Посмотреть сообщение
То система:
1. По первому/ым символу/ам определит, бинарник это или текстовый файл
2. Если бинарник, запустит напрямую
3. Если текствоый, запустить shell-ом по умолчанию (bash/ksh...)
Получается... Если не определять с какой оболочки будет выполнятся скрипт, то он будет запускаться из оболочки которая прописана у пользователя? Используя команду env (в Centos-е).

Bash
1
2
3
env
...
SHELL=/bin/bash
P.S: Соответственно если дать еще и права на выполнение (x)
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
22.04.2019, 09:40
Цитата Сообщение от Kukstyler Посмотреть сообщение
По первому/ым символу/ам определит
  • Code
    1
    2
    
    # ls -l /bin/ed
    -rwxr-xr-x 1 root root 51552 фев 20  2016 /bin/ed
  • Code
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    # ed --help
    GNU Ed - The GNU line editor.
     
    Usage: ed [options] [file]
     
    Options:
      -h, --help                 display this help and exit
      -V, --version              output version information and exit
    ......
  • Code
    1
    
    # chmod -x /bin/ed
  • Code
    1
    2
    
    # ed --help
    -bash: /bin/ed: Отказано в доступе

зы. и первые байты файла при этом не менялись:
Code
1
2
# ls -l /bin/ed
-rw-r--r-- 1 root root 51552 фев 20  2016 /bin/ed
0
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
22.04.2019, 12:57
Dmitry, а причём всё это? Понятное дело что флаг x должен быть на всём, что должно исполняться.

Я говорю, на пример, создать скрипт в кодировке UTF8+BOM, сделать ему chmod +x и запустить. Можно даже прописать в заголовке #!/bin/bash
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
22.04.2019, 13:07
Цитата Сообщение от Kukstyler Посмотреть сообщение
а причём всё это?
при том, что немножко не по "первым символам". я показал, что убрал бит execute из СВОЙСТВ файла, и он исполняться перестал. при этом САМ ФАЙЛ (ни первые его биты, ни посмледние) НЕ МЕНЯЛИСЬ.
0
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
22.04.2019, 14:23
Dmitry, согласен. Я не понимаю причём флаги свойств файла, когда тема про содержимое файла.
Цитата Сообщение от Kukstyler Посмотреть сообщение
создать скрипт в кодировке UTF8+BOM, сделать ему chmod +x и запустить.
Не запуститься, несмотря на свойство x. И не запуститься именно из за
Цитата Сообщение от Dmitry Посмотреть сообщение
по "первым символам"
0
Модератор
Эксперт NIX
 Аватар для NeoMatrix
8532 / 3373 / 105
Регистрация: 24.05.2011
Сообщений: 14,595
Записей в блоге: 8
25.04.2019, 23:40
Цитата Сообщение от Kukstyler Посмотреть сообщение
Я не понимаю причём флаги свойств файла
Даже, если файл бинарный - он совсем не обязан быть исполняемым. Если файл исполняемый (об этом и говорит флаг [x] в свойствах) - он совсем не обязательно является бинарным.
Основным показателем исполняемости файла является флаг [x] в свойствах файла. Об этом вам следует полуркать "file inode" или вывод команды
Bash
1
ls -li Filename
Частично о типе содержимого файла может говорить расширение имени файла. Это всем привычные *.txt, *mp3, *.doc и т.п.
Но отсутствие расширения - не повод для линуксов падать в kernel panic. Основная инфа о принадлежности обычного файла* содержится, обычно, в его заголовке - внутри файла, в самом его начале в виде "магического числа" - специальной последовательности байт, однозначно идентифицирующей его последующее содержимое, как определённый (и, что вам и нужно - какому приложению соответствующий) поток данных. То есть, прочитав только заголовок файла линукс уже знает, каким приложением следует открывать данный файл.
Но даже, если этот файл не содержит в заголовке "магического числа", ядро линукс пытается его идентифицировать по остальным полям содержимого.
Вообще, данной задачей в линуксах занимается приложение file. Вы можете перейти в любой каталог с файлами разных типов и проидентифицировать каждый файл на предмет его принадлежности к исполняемым, текстовым или медиафайлам таким образом:
Bash
1
file Filename
_______________________________________
*) Вообще, "тип файла" описывается в метаданных файла. И, т.к. в линуксах файлами является абсолютно всё - и устройства, и файлы, и процессы, и вообще всё, то под "обычными (простыми) файлом" подразумеваются файлы, хранящиеся на вашем HDD - текстовые, исполняемые, медиафайлы. И, например, каталог - тоже файл, хранящий в себе другие файлы, а посему имеющий другой тип - d (directory file). Обычные (простые) файлы в метаданных имеют обозначение "-".

...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.04.2019, 23:40
Помогаю со студенческими работами здесь

Проверка на перезапуск скрипта bash
Всем привет. Есть скрипт на запуск программы #!/bin/bash ./unpack.sh cd bsp_bin export PATH=$QTDIR_X86:$PATH export...

Вывод bash скрипта в формате JSON
Добрый день! Обращаюсь за помощью к специалистам. Задача - сделать отображение состояния бекапов встроенными средствами виртуальной...

Bash скрипты, три связанных скрипта
Помогите, пожалуйста, справиться с задачей.. Нужно сделать, чтобы: 1) первый скрип считает до 2000; 2) второй - следит за результатами...

Добавление bash - скрипта задачи в crontab
Как можно из bash - скрипта добавить задачу в crontab без прав root ?

Запрет на повторное выполнение скрипта в bash
Добрый день! Как можно запретить выполнятся скрипту, если прошлый его запуск был с ошибкой?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru