Grub отлично работает на диске с таблицами разделов GPT, однако для установки на секционированный диск GPT на диске должен быть небольшой (1 мб) раздел, особенно для grub. (на секционированных дисках msdos есть пространство, которое использует grub, но этого нет в разделах GPT). Последние версии gparted способны создавать эти небольшие разделы. К сожалению, если ваш диск был разделен без этого раздела, вам не повезло, так как перемещение раздела даже одного мегабайта - это большое испытание. https://www.gnu.org/software/grub/manual/html_node/BIOS-installation.html
Grub 2 поддерживает загрузку из GPT даже из BIOS, так как не требует основного режима UEFI. Все компьютеры Apple, не являющиеся яблоками, которые я знаю, поддерживают загрузку в режиме BIOS, и это рекомендуется для загрузки UEFI.
Когда вы запускаете любой скрипт, передавая имя файла программе интерпретатора скриптов, вы запускаете программу-интерпретатор со скриптом в качестве аргумента, переданного в него. Например, это будет выглядеть как «sh» с аргументом «filename.sh». Интерпретатор sh открывает файл.
С другой стороны, если вы запустите сам скрипт, система вызовет программу-интерпретатор, указанную и загрузив содержимое скриптов. В этом случае процесс выглядит как «filename.sh» без аргументов.
Вы должны убедиться, что у вас есть линия привязки:
#!/bin/bash
# bash script here
Линия звонка - это первая строка в скрипте и начинается с тех же двух символов #!, это то, что система считывает, когда пытается выполнить скрипт, а затем система передает сценарий программе сразу после. Обратите внимание, что эта строка не имеет ничего общего с bash и работает так же хорошо для python и perl, хотя они очень разные языки. Например, вы бы использовали #!/usr/bin/python, а затем следуете за ним с помощью кода python.
После того, как у вас есть сценарий, убедитесь, что вы установили разрешения на выполнение:
chmod a+x filename.sh
Тогда вы можете запустите скрипт как свой собственный процесс:
./filename.sh
Или поместите файл в известное место с хорошим именем программы, например /usr/sbin и запустите из любого места:
sudo cp filename.sh /usr/sbin/program-name
program-name
[d8 ] И это действительно очень первая строка дает преимущество использования строки bang с правильными разрешениями - все дело в развертывании. Очень сложно заставить пользователей запускать скрипт, если им нужно помнить, в какую программу запускать скрипт. Не забудьте указать полный путь к скрипту каждый раз, когда они захотят его запустить. Где, например, вставляя его в /usr/local/bin и делая его исполняемым, можно сэкономить много горя для людей, пытающихся использовать ваш скрипт. Эти программы становятся доступными для всех пользователей вашего компьютера. Это также хорошо для идентификации. Если вы заходите в программу top, сценарий, запущенный без линии привязки, будет просто иметь имя интерпретатора, то есть bash, perl или python. Но если скрипт запускается с правильными разрешениями, то появляется имя скрипта.
Примечание. Если вы хотите распространять скрипт, доступный для всех, создайте страницу руководства и пакет deb для его установки. Нам нужно уменьшить количество случайных скриптов в Интернете и увеличить количество deb, которые можно удалить.
Когда вы запускаете любой скрипт, передавая имя файла программе интерпретатора скриптов, вы запускаете программу-интерпретатор со скриптом в качестве аргумента, переданного в него. Например, это будет выглядеть как «sh» с аргументом «filename.sh». Интерпретатор sh открывает файл.
С другой стороны, если вы запустите сам скрипт, система вызовет программу-интерпретатор, указанную и загрузив содержимое скриптов. В этом случае процесс выглядит как «filename.sh» без аргументов.
Вы должны убедиться, что у вас есть линия привязки:
#!/bin/bash
# bash script here
Линия звонка - это первая строка в скрипте и начинается с тех же двух символов #!, это то, что система считывает, когда пытается выполнить скрипт, а затем система передает сценарий программе сразу после. Обратите внимание, что эта строка не имеет ничего общего с bash и работает так же хорошо для python и perl, хотя они очень разные языки. Например, вы бы использовали #!/usr/bin/python, а затем следуете за ним с помощью кода python.
Как только у вас есть сценарий, убедитесь, что вы установили разрешения на выполнение:
chmod a+x filename.sh
Затем вы можете запустите скрипт как свой собственный процесс:
./filename.sh
Или поместите файл в известное место с хорошим именем программы, например /usr/sbin и запустите из любого места:
sudo cp filename.sh /usr/sbin/program-name
program-name
И это действительно очень первая строка дает преимущество использования строки bang с правильными разрешениями - все дело в развертывании. Очень сложно заставить пользователей запускать скрипт, если им нужно помнить, в какую программу запускать скрипт. Не забудьте указать полный путь к скрипту каждый раз, когда они захотят его запустить. Где, например, вставляя его в /usr/local/bin и делая его исполняемым, можно сэкономить много горя для людей, пытающихся использовать ваш скрипт. Эти программы становятся доступными для всех пользователей вашего компьютера.
Это также хорошо для идентификации. Если вы заходите в программу top, сценарий, запущенный без линии привязки, будет просто иметь имя интерпретатора, то есть bash, perl или python. Но если скрипт запускается с правильными разрешениями, то появляется имя скрипта.
Примечание. Если вы хотите распространять скрипт, доступный для всех, создайте страницу руководства и пакет deb для его установки. Нам нужно уменьшить количество случайных скриптов в Интернете и увеличить количество deb, которые можно удалить.
Когда вы запускаете любой скрипт, передавая имя файла программе интерпретатора скриптов, вы запускаете программу-интерпретатор со скриптом в качестве аргумента, переданного в него. Например, это будет выглядеть как «sh» с аргументом «filename.sh». Интерпретатор sh открывает файл.
С другой стороны, если вы запустите сам скрипт, система вызовет программу-интерпретатор, указанную и загрузив содержимое скриптов. В этом случае процесс выглядит как «filename.sh» без аргументов.
Вы должны убедиться, что у вас есть линия привязки:
#!/bin/bash
# bash script here
Линия звонка - это первая строка в скрипте и начинается с тех же двух символов #!, это то, что система считывает, когда пытается выполнить скрипт, а затем система передает сценарий программе сразу после. Обратите внимание, что эта строка не имеет ничего общего с bash и работает так же хорошо для python и perl, хотя они очень разные языки. Например, вы бы использовали #!/usr/bin/python, а затем следуете за ним с помощью кода python.
Как только у вас есть сценарий, убедитесь, что вы установили разрешения на выполнение:
chmod a+x filename.sh
Затем вы можете запустите скрипт как свой собственный процесс:
./filename.sh
Или поместите файл в известное место с хорошим именем программы, например /usr/sbin и запустите из любого места:
sudo cp filename.sh /usr/sbin/program-name
program-name
И это действительно очень первая строка дает преимущество использования строки bang с правильными разрешениями - все дело в развертывании. Очень сложно заставить пользователей запускать скрипт, если им нужно помнить, в какую программу запускать скрипт. Не забудьте указать полный путь к скрипту каждый раз, когда они захотят его запустить. Где, например, вставляя его в /usr/local/bin и делая его исполняемым, можно сэкономить много горя для людей, пытающихся использовать ваш скрипт. Эти программы становятся доступными для всех пользователей вашего компьютера.
Это также хорошо для идентификации. Если вы заходите в программу top, сценарий, запущенный без линии привязки, будет просто иметь имя интерпретатора, то есть bash, perl или python. Но если скрипт запускается с правильными разрешениями, то появляется имя скрипта.
Примечание. Если вы хотите распространять скрипт, доступный для всех, создайте страницу руководства и пакет deb для его установки. Нам нужно уменьшить количество случайных скриптов в Интернете и увеличить количество deb, которые можно удалить.
Когда вы запускаете любой скрипт, передавая имя файла программе интерпретатора скриптов, вы запускаете программу-интерпретатор со скриптом в качестве аргумента, переданного в него. Например, это будет выглядеть как «sh» с аргументом «filename.sh». Интерпретатор sh открывает файл.
С другой стороны, если вы запустите сам скрипт, система вызовет программу-интерпретатор, указанную и загрузив содержимое скриптов. В этом случае процесс выглядит как «filename.sh» без аргументов.
Вы должны убедиться, что у вас есть линия привязки:
#!/bin/bash
# bash script here
Линия звонка - это первая строка в скрипте и начинается с тех же двух символов #!, это то, что система считывает, когда пытается выполнить скрипт, а затем система передает сценарий программе сразу после. Обратите внимание, что эта строка не имеет ничего общего с bash и работает так же хорошо для python и perl, хотя они очень разные языки. Например, вы бы использовали #!/usr/bin/python, а затем следуете за ним с помощью кода python.
Как только у вас есть сценарий, убедитесь, что вы установили разрешения на выполнение:
chmod a+x filename.sh
Затем вы можете запустите скрипт как свой собственный процесс:
./filename.sh
Или поместите файл в известное место с хорошим именем программы, например /usr/sbin и запустите из любого места:
sudo cp filename.sh /usr/sbin/program-name
program-name
И это действительно очень первая строка дает преимущество использования строки bang с правильными разрешениями - все дело в развертывании. Очень сложно заставить пользователей запускать скрипт, если им нужно помнить, в какую программу запускать скрипт. Не забудьте указать полный путь к скрипту каждый раз, когда они захотят его запустить. Где, например, вставляя его в /usr/local/bin и делая его исполняемым, можно сэкономить много горя для людей, пытающихся использовать ваш скрипт. Эти программы становятся доступными для всех пользователей вашего компьютера.
Это также хорошо для идентификации. Если вы заходите в программу top, сценарий, запущенный без линии привязки, будет просто иметь имя интерпретатора, то есть bash, perl или python. Но если скрипт запускается с правильными разрешениями, то появляется имя скрипта.
Примечание. Если вы хотите распространять скрипт, доступный для всех, создайте страницу руководства и пакет deb для его установки. Нам нужно уменьшить количество случайных скриптов в Интернете и увеличить количество deb, которые можно удалить.
Когда вы запускаете любой скрипт, передавая имя файла программе интерпретатора скриптов, вы запускаете программу-интерпретатор со скриптом в качестве аргумента, переданного в него. Например, это будет выглядеть как «sh» с аргументом «filename.sh». Интерпретатор sh открывает файл.
С другой стороны, если вы запустите сам скрипт, система вызовет программу-интерпретатор, указанную и загрузив содержимое скриптов. В этом случае процесс выглядит как «filename.sh» без аргументов.
Вы должны убедиться, что у вас есть линия привязки:
#!/bin/bash
# bash script here
Линия звонка - это первая строка в скрипте и начинается с тех же двух символов #!, это то, что система считывает, когда пытается выполнить скрипт, а затем система передает сценарий программе сразу после. Обратите внимание, что эта строка не имеет ничего общего с bash и работает так же хорошо для python и perl, хотя они очень разные языки. Например, вы бы использовали #!/usr/bin/python, а затем следуете за ним с помощью кода python.
Как только у вас есть сценарий, убедитесь, что вы установили разрешения на выполнение:
chmod a+x filename.sh
Затем вы можете запустите скрипт как свой собственный процесс:
./filename.sh
Или поместите файл в известное место с хорошим именем программы, например /usr/sbin и запустите из любого места:
sudo cp filename.sh /usr/sbin/program-name
program-name
И это действительно очень первая строка дает преимущество использования строки bang с правильными разрешениями - все дело в развертывании. Очень сложно заставить пользователей запускать скрипт, если им нужно помнить, в какую программу запускать скрипт. Не забудьте указать полный путь к скрипту каждый раз, когда они захотят его запустить. Где, например, вставляя его в /usr/local/bin и делая его исполняемым, можно сэкономить много горя для людей, пытающихся использовать ваш скрипт. Эти программы становятся доступными для всех пользователей вашего компьютера.
Это также хорошо для идентификации. Если вы заходите в программу top, сценарий, запущенный без линии привязки, будет просто иметь имя интерпретатора, то есть bash, perl или python. Но если скрипт запускается с правильными разрешениями, то появляется имя скрипта.
Примечание. Если вы хотите распространять скрипт, доступный для всех, создайте страницу руководства и пакет deb для его установки. Нам нужно уменьшить количество случайных скриптов в Интернете и увеличить количество deb, которые можно удалить.
Когда вы запускаете любой скрипт, передавая имя файла программе интерпретатора скриптов, вы запускаете программу-интерпретатор со скриптом в качестве аргумента, переданного в него. Например, это будет выглядеть как «sh» с аргументом «filename.sh». Интерпретатор sh открывает файл.
С другой стороны, если вы запустите сам скрипт, система вызовет программу-интерпретатор, указанную и загрузив содержимое скриптов. В этом случае процесс выглядит как «filename.sh» без аргументов.
Вы должны убедиться, что у вас есть линия привязки:
#!/bin/bash
# bash script here
Линия звонка - это первая строка в скрипте и начинается с тех же двух символов #!, это то, что система считывает, когда пытается выполнить скрипт, а затем система передает сценарий программе сразу после. Обратите внимание, что эта строка не имеет ничего общего с bash и работает так же хорошо для python и perl, хотя они очень разные языки. Например, вы бы использовали #!/usr/bin/python, а затем следуете за ним с помощью кода python.
Как только у вас есть сценарий, убедитесь, что вы установили разрешения на выполнение:
chmod a+x filename.sh
Затем вы можете запустите скрипт как свой собственный процесс:
./filename.sh
Или поместите файл в известное место с хорошим именем программы, например /usr/sbin и запустите из любого места:
sudo cp filename.sh /usr/sbin/program-name
program-name
И это действительно очень первая строка дает преимущество использования строки bang с правильными разрешениями - все дело в развертывании. Очень сложно заставить пользователей запускать скрипт, если им нужно помнить, в какую программу запускать скрипт. Не забудьте указать полный путь к скрипту каждый раз, когда они захотят его запустить. Где, например, вставляя его в /usr/local/bin и делая его исполняемым, можно сэкономить много горя для людей, пытающихся использовать ваш скрипт. Эти программы становятся доступными для всех пользователей вашего компьютера.
Это также хорошо для идентификации. Если вы заходите в программу top, сценарий, запущенный без линии привязки, будет просто иметь имя интерпретатора, то есть bash, perl или python. Но если скрипт запускается с правильными разрешениями, то появляется имя скрипта.
Примечание. Если вы хотите распространять скрипт, доступный для всех, создайте страницу руководства и пакет deb для его установки. Нам нужно уменьшить количество случайных скриптов в Интернете и увеличить количество deb, которые можно удалить.
Когда вы запускаете любой скрипт, передавая имя файла программе интерпретатора скриптов, вы запускаете программу-интерпретатор со скриптом в качестве аргумента, переданного в него. Например, это будет выглядеть как «sh» с аргументом «filename.sh». Интерпретатор sh открывает файл.
С другой стороны, если вы запустите сам скрипт, система вызовет программу-интерпретатор, указанную и загрузив содержимое скриптов. В этом случае процесс выглядит как «filename.sh» без аргументов.
Вы должны убедиться, что у вас есть линия привязки:
#!/bin/bash
# bash script here
Линия звонка - это первая строка в скрипте и начинается с тех же двух символов #!, это то, что система считывает, когда пытается выполнить скрипт, а затем система передает сценарий программе сразу после. Обратите внимание, что эта строка не имеет ничего общего с bash и работает так же хорошо для python и perl, хотя они очень разные языки. Например, вы бы использовали #!/usr/bin/python, а затем следуете за ним с помощью кода python.
После того, как у вас есть сценарий, убедитесь, что вы установили разрешения на выполнение:
chmod a+x filename.sh
Тогда вы можете запустите скрипт как свой собственный процесс:
./filename.sh
Или поместите файл в известное место с хорошим именем программы, например /usr/sbin и запустите из любого места:
sudo cp filename.sh /usr/sbin/program-name
program-name
И это действительно очень первая строка дает преимущество использования строки bang с правильными разрешениями - все дело в развертывании. Очень сложно заставить пользователей запускать скрипт, если им нужно помнить, в какую программу запускать скрипт. Не забудьте указать полный путь к скрипту каждый раз, когда они захотят его запустить. Где, например, вставляя его в /usr/local/bin и делая его исполняемым, можно сэкономить много горя для людей, пытающихся использовать ваш скрипт. Эти программы становятся доступными для всех пользователей вашего компьютера.
Это также хорошо для идентификации. Если вы заходите в программу top, сценарий, запущенный без линии привязки, будет просто иметь имя интерпретатора, то есть bash, perl или python. Но если скрипт запускается с правильными разрешениями, то появляется имя скрипта.
Примечание. Если вы хотите распространять скрипт, доступный для всех, создайте страницу руководства и пакет deb для его установки. Нам нужно уменьшить количество случайных скриптов в Интернете и увеличить количество deb, которые можно удалить.
Когда вы запускаете любой скрипт, передавая имя файла программе интерпретатора скриптов, вы запускаете программу-интерпретатор со скриптом в качестве аргумента, переданного в него. Например, это будет выглядеть как «sh» с аргументом «filename.sh». Интерпретатор sh
открывает файл.
С другой стороны, если вы запустите сам скрипт, система вызовет указанную программу интерпретатора и загрузит содержимое скриптов. В этом случае процесс выглядит как «filename.sh» без аргументов.
Вы должны убедиться, что у вас есть линия привязки:
#! / Bin / bash # bash script здесь
Линия звонка - это самая первая строка в скрипте и начинается с тех же двух символов #!
, это то, что система читает, когда она пытается выполнить скрипт, а затем система сразу же передает сценарий программе. Обратите внимание, что эта строка не имеет ничего общего с bash и работает так же хорошо для python и perl, хотя они очень разные языки. Например, вы должны использовать #! / Usr / bin / python
, а затем следовать ему с помощью кода python.
После того, как у вас есть сценарий, убедитесь, что вы установили разрешения на выполнение: [ ! d19]
chmod a + x filename.sh
Тогда вы можете запустить скрипт как свой собственный процесс:
./ filename.sh
Или поместите файл в известное место с хорошим именем программы, например / usr / sbin
и запустите из любого места:
sudo cp filename.sh / usr / sbin / program-name имя_программы
И это действительно практическое преимущество использования линии привязки с правильными разрешениями - это все о развертывании . Очень сложно заставить пользователей запускать скрипт, если им нужно помнить, в какую программу запускать скрипт. Не забудьте указать полный путь к скрипту каждый раз, когда они захотят его запустить. Где, например, вставлять его в / usr / local / bin
и делать его исполняемым, может сэкономить много горя для людей, пытающихся использовать ваш скрипт. Затем эти программы становятся доступными для всех пользователей на вашем компьютере.
Это также хорошо для идентификации. Если вы заходите в программу top
, скрипт, запускаемый без строки привязки, будет просто иметь имя интерпретатора, то есть bash
, perl
или питона
. Но если скрипт запускается с правильными разрешениями, то появляется имя скрипта.
Примечание. Если вы хотите распространять скрипт, доступный для всех, создайте страницу руководства и пакет deb для его установки. Нам нужно уменьшить количество случайных скриптов в Интернете и увеличить количество deb, которые можно удалить.
Когда вы запускаете любой скрипт, передавая имя файла программе интерпретатора скриптов, вы запускаете программу-интерпретатор со скриптом в качестве аргумента, переданного в него. Например, это будет выглядеть как «sh» с аргументом «filename.sh». Интерпретатор sh
открывает файл.
С другой стороны, если вы запустите сам скрипт, система вызовет указанную программу интерпретатора и загрузит содержимое скриптов. В этом случае процесс выглядит как «filename.sh» без аргументов.
Вы должны убедиться, что у вас есть линия привязки:
#! / Bin / bash # bash script здесь
Линия звонка - это самая первая строка в скрипте и начинается с тех же двух символов #!
, это то, что система читает, когда она пытается выполнить скрипт, а затем система сразу же передает сценарий программе. Обратите внимание, что эта строка не имеет ничего общего с bash и работает так же хорошо для python и perl, хотя они очень разные языки. Например, вы должны использовать #! / Usr / bin / python
, а затем следовать ему с помощью кода python.
После того, как у вас есть сценарий, убедитесь, что вы установили разрешения на выполнение: [ ! d19]
chmod a + x filename.sh
Тогда вы можете запустить скрипт как свой собственный процесс:
./ filename.sh
Или поместите файл в известное место с хорошим именем программы, например / usr / sbin
и запустите из любого места:
sudo cp filename.sh / usr / sbin / program-name имя_программы
И это действительно практическое преимущество использования линии привязки с правильными разрешениями - это все о развертывании . Очень сложно заставить пользователей запускать скрипт, если им нужно помнить, в какую программу запускать скрипт. Не забудьте указать полный путь к скрипту каждый раз, когда они захотят его запустить. Где, например, вставлять его в / usr / local / bin
и делать его исполняемым, может сэкономить много горя для людей, пытающихся использовать ваш скрипт. Затем эти программы становятся доступными для всех пользователей на вашем компьютере.
Это также хорошо для идентификации. Если вы заходите в программу top
, скрипт, запускаемый без строки привязки, будет просто иметь имя интерпретатора, то есть bash
, perl
или питона
. Но если скрипт запускается с правильными разрешениями, то появляется имя скрипта.
Примечание. Если вы хотите распространять скрипт, доступный для всех, создайте страницу руководства и пакет deb для его установки. Нам нужно уменьшить количество случайных скриптов в Интернете и увеличить количество deb, которые можно удалить.
Когда вы запускаете любой скрипт, передавая имя файла программе интерпретатора скриптов, вы запускаете программу-интерпретатор со скриптом в качестве аргумента, переданного в него. Например, это будет выглядеть как «sh» с аргументом «filename.sh». Интерпретатор sh
открывает файл.
С другой стороны, если вы запустите сам скрипт, система вызовет указанную программу интерпретатора и загрузит содержимое скриптов. В этом случае процесс выглядит как «filename.sh» без аргументов.
Вы должны убедиться, что у вас есть линия привязки:
#! / Bin / bash # bash script здесь
Линия звонка - это самая первая строка в скрипте и начинается с тех же двух символов #!
, это то, что система читает, когда она пытается выполнить скрипт, а затем система сразу же передает сценарий программе. Обратите внимание, что эта строка не имеет ничего общего с bash и работает так же хорошо для python и perl, хотя они очень разные языки. Например, вы должны использовать #! / Usr / bin / python
, а затем следовать ему с помощью кода python.
После того, как у вас есть сценарий, убедитесь, что вы установили разрешения на выполнение: [ ! d19]
chmod a + x filename.sh
Тогда вы можете запустить скрипт как свой собственный процесс:
./ filename.sh
Или поместите файл в известное место с хорошим именем программы, например / usr / sbin
и запустите из любого места:
sudo cp filename.sh / usr / sbin / program-name имя_программы
И это действительно практическое преимущество использования линии привязки с правильными разрешениями - это все о развертывании . Очень сложно заставить пользователей запускать скрипт, если им нужно помнить, в какую программу запускать скрипт. Не забудьте указать полный путь к скрипту каждый раз, когда они захотят его запустить. Где, например, вставлять его в / usr / local / bin
и делать его исполняемым, может сэкономить много горя для людей, пытающихся использовать ваш скрипт. Затем эти программы становятся доступными для всех пользователей на вашем компьютере.
Это также хорошо для идентификации. Если вы заходите в программу top
, скрипт, запускаемый без строки привязки, будет просто иметь имя интерпретатора, то есть bash
, perl
или питона
. Но если скрипт запускается с правильными разрешениями, то появляется имя скрипта.
Примечание. Если вы хотите распространять скрипт, доступный для всех, создайте страницу руководства и пакет deb для его установки. Нам нужно уменьшить количество случайных скриптов в Интернете и увеличить количество deb, которые можно удалить.
Когда вы запускаете любой скрипт, передавая имя файла программе интерпретатора скриптов, вы запускаете программу-интерпретатор со скриптом в качестве аргумента, переданного в него. Например, это будет выглядеть как «sh» с аргументом «filename.sh». Интерпретатор sh
открывает файл.
С другой стороны, если вы запустите сам скрипт, система вызовет указанную программу интерпретатора и загрузит содержимое скриптов. В этом случае процесс выглядит как «filename.sh» без аргументов.
Вы должны убедиться, что у вас есть линия привязки:
#! / Bin / bash # bash script здесь
Линия звонка - это самая первая строка в скрипте и начинается с тех же двух символов #!
, это то, что система читает, когда она пытается выполнить скрипт, а затем система сразу же передает сценарий программе. Обратите внимание, что эта строка не имеет ничего общего с bash и работает так же хорошо для python и perl, хотя они очень разные языки. Например, вы должны использовать #! / Usr / bin / python
, а затем следовать ему с помощью кода python.
После того, как у вас есть сценарий, убедитесь, что вы установили разрешения на выполнение: [ ! d19]
chmod a + x filename.sh
Тогда вы можете запустить скрипт как свой собственный процесс:
./ filename.sh
Или поместите файл в известное место с хорошим именем программы, например / usr / sbin
и запустите из любого места:
sudo cp filename.sh / usr / sbin / program-name имя_программы
И это действительно практическое преимущество использования линии привязки с правильными разрешениями - это все о развертывании . Очень сложно заставить пользователей запускать скрипт, если им нужно помнить, в какую программу запускать скрипт. Не забудьте указать полный путь к скрипту каждый раз, когда они захотят его запустить. Где, например, вставлять его в / usr / local / bin
и делать его исполняемым, может сэкономить много горя для людей, пытающихся использовать ваш скрипт. Затем эти программы становятся доступными для всех пользователей на вашем компьютере.
Это также хорошо для идентификации. Если вы заходите в программу top
, скрипт, запускаемый без строки привязки, будет просто иметь имя интерпретатора, то есть bash
, perl
или питона
. Но если скрипт запускается с правильными разрешениями, то появляется имя скрипта.
Примечание. Если вы хотите распространять скрипт, доступный для всех, создайте страницу руководства и пакет deb для его установки. Нам нужно уменьшить количество случайных скриптов в Интернете и увеличить количество deb, которые можно удалить.
bash
, а не sh
.
– Nathan Osman
24 January 2011 в 06:13
PATH
.
– geirha
24 January 2011 в 11:46
Короткий вариант:
sh - интерпретатор командной строки (тире) .Running sh my_script делает черту интерпретацией скрипта. ./ пытается выяснить, какой интерпретатор использовать, посмотрев на первую строку. Например. #!/bin/bash или даже #!/bin/ruby (как показано на ruby my_script).Есть три основные причины, по которым вы можете получить сообщение об ошибке:
файл не является исполняемым запустите chmod +x <myscriptname.sh>, чтобы исправить, что раздел не позволяет запускать скрипты (установлен «noexec») скопируйте скрипт на /usr/local/bin, строка #! имеет ошибку, убедитесь, что первая строка - #!/bin/sh или #!/bin/bashЕсли ваша первая строка выглядит правильно, но все еще не работает, сделайте убедитесь, что файл не имеет окончаний строки DOS.
Ошибка будет выглядеть примерно так:
$ ./myscript.sh
bash: ./myscript.sh: /bin/bash^M: bad interpreter: No such file or directory
Вы можете исправить это, запустив dos2unix <myscriptname.sh>, или если вы это есть, perl -p -i -e 's/\r\n$/\n/' <myscriptname.sh>.
Разница, которую вы делаете,
с sh, вы запускаете программу, которая будет интерпретировать строки в вашем скрипте так же, как вы бы набрали их в интерактивной подсказке терминала , с ./ вы делаете ярлык, предполагая, что скрипт находится прямо здесь, в текущем каталоге, в котором вы сидите. И он будет исполняемым (потому что, например, вы выпустили chmod +x myscript.sh), экономя ваше бесценное время на будущее раз :-)И ответ заключается в том, что sh - это имя для очень популярной оболочки. Но устарели и заменены другими. В настоящее время sh связан с другими оболочками, установленными на машине. например У меня есть баш. Запуск любой оболочки из sh обычно запускает некоторый режим совместимости с оригинальным поведением «оболочки».
Так что решение довольно простое. Посмотрите, что находится за командой sh (ls -al / bin / sh), и поставьте #! / Bin / whatever_you_find_there в качестве первой строки (или если что-то подобное в вашем скрипте отредактирует).
И, альтернативно, может возникнуть ошибка в самом скрипте. Подобно зависимости, которую выполняет sh, но не интерпретатор, который фактически используется.
mkdir ~/bin ; cp myscript.sh ~/bin/
echo "export PATH="$PATH:/home/$USER/bin" >> ~/.profile ; source ~/.profile ;
Не /usr/sbin, это для несущественных административных инструментов, /usr/local/bin - лучший выбор, если вы не хотите иметь ~/bin/, но желательно избегать sudo насколько это возможно. .
mkdir ~/bin ; cp myscript.sh ~/bin/
echo "export PATH="$PATH:/home/$USER/bin" >> ~/.profile ; source ~/.profile ;
Не /usr/sbin, это для несущественных административных инструментов, /usr/local/bin - лучший выбор, если вы не хотите иметь ~/bin/, но желательно избегать sudo насколько это возможно. .
Разница, которую вы делаете,
с sh, вы запускаете программу, которая будет интерпретировать строки в вашем скрипте так же, как вы бы набрали их в интерактивной подсказке терминала , с ./ вы делаете ярлык, предполагая, что скрипт находится прямо здесь, в текущем каталоге, в котором вы сидите. И он будет исполняемым (потому что, например, вы выпустили chmod +x myscript.sh), экономя ваше бесценное время на будущее раз :-)Есть три основные причины, по которым вы можете получить сообщение об ошибке:
файл не является исполняемым запустите chmod +x <myscriptname.sh>, чтобы исправить, что раздел не позволяет запускать скрипты (установлен «noexec») скопируйте скрипт на /usr/local/bin, строка #! имеет ошибку, убедитесь, что первая строка - #!/bin/sh или #!/bin/bashЕсли ваша первая строка выглядит правильно, но все еще не работает, сделайте убедитесь, что файл не имеет окончаний строки DOS.
Ошибка будет выглядеть примерно так:
$ ./myscript.sh
bash: ./myscript.sh: /bin/bash^M: bad interpreter: No such file or directory
Вы можете исправить это, запустив dos2unix <myscriptname.sh>, или если вы это есть, perl -p -i -e 's/\r\n$/\n/' <myscriptname.sh>.
И ответ заключается в том, что sh - это имя для очень популярной оболочки. Но устарели и заменены другими. В настоящее время sh связан с другими оболочками, установленными на машине. например У меня есть баш. Запуск любой оболочки из sh обычно запускает некоторый режим совместимости с оригинальным поведением «оболочки».
Так что решение довольно простое. Посмотрите, что находится за командой sh (ls -al / bin / sh), и поставьте #! / Bin / whatever_you_find_there в качестве первой строки (или если что-то подобное в вашем скрипте отредактирует).
И, альтернативно, может возникнуть ошибка в самом скрипте. Подобно зависимости, которую выполняет sh, но не интерпретатор, который фактически используется.
Короткий вариант:
sh - интерпретатор командной строки (тире) .Running sh my_script делает черту интерпретацией скрипта. ./ пытается выяснить, какой интерпретатор использовать, посмотрев на первую строку. Например. #!/bin/bash или даже #!/bin/ruby (как показано на ruby my_script).mkdir ~/bin ; cp myscript.sh ~/bin/
echo "export PATH="$PATH:/home/$USER/bin" >> ~/.profile ; source ~/.profile ;
Не /usr/sbin, это для несущественных административных инструментов, /usr/local/bin - лучший выбор, если вы не хотите иметь ~/bin/, но желательно избегать sudo насколько это возможно. .
Разница, которую вы делаете,
с sh, вы запускаете программу, которая будет интерпретировать строки в вашем скрипте так же, как вы бы набрали их в интерактивной подсказке терминала , с ./ вы делаете ярлык, предполагая, что скрипт находится прямо здесь, в текущем каталоге, в котором вы сидите. И он будет исполняемым (потому что, например, вы выпустили chmod +x myscript.sh), экономя ваше бесценное время на будущее раз :-)Есть три основные причины, по которым вы можете получить сообщение об ошибке:
файл не является исполняемым запустите chmod +x <myscriptname.sh>, чтобы исправить, что раздел не позволяет запускать скрипты (установлен «noexec») скопируйте скрипт на /usr/local/bin, строка #! имеет ошибку, убедитесь, что первая строка - #!/bin/sh или #!/bin/bashЕсли ваша первая строка выглядит правильно, но все еще не работает, сделайте убедитесь, что файл не имеет окончаний строки DOS.
Ошибка будет выглядеть примерно так:
$ ./myscript.sh
bash: ./myscript.sh: /bin/bash^M: bad interpreter: No such file or directory
Вы можете исправить это, запустив dos2unix <myscriptname.sh>, или если вы это есть, perl -p -i -e 's/\r\n$/\n/' <myscriptname.sh>.
И ответ заключается в том, что sh - это имя для очень популярной оболочки. Но устарели и заменены другими. В настоящее время sh связан с другими оболочками, установленными на машине. например У меня есть баш. Запуск любой оболочки из sh обычно запускает некоторый режим совместимости с оригинальным поведением «оболочки».
Так что решение довольно простое. Посмотрите, что находится за командой sh (ls -al / bin / sh), и поставьте #! / Bin / whatever_you_find_there в качестве первой строки (или если что-то подобное в вашем скрипте отредактирует).
И, альтернативно, может возникнуть ошибка в самом скрипте. Подобно зависимости, которую выполняет sh, но не интерпретатор, который фактически используется.
Короткий вариант:
sh - интерпретатор командной строки (тире) .Running sh my_script делает черту интерпретацией скрипта. ./ пытается выяснить, какой интерпретатор использовать, посмотрев на первую строку. Например. #!/bin/bash или даже #!/bin/ruby (как показано на ruby my_script).mkdir ~/bin ; cp myscript.sh ~/bin/
echo "export PATH="$PATH:/home/$USER/bin" >> ~/.profile ; source ~/.profile ;
Не /usr/sbin, это для несущественных административных инструментов, /usr/local/bin - лучший выбор, если вы не хотите иметь ~/bin/, но желательно избегать sudo насколько это возможно. .
Разница, которую вы делаете,
с sh, вы запускаете программу, которая будет интерпретировать строки в вашем скрипте так же, как вы бы набрали их в интерактивной подсказке терминала , с ./ вы делаете ярлык, предполагая, что скрипт находится прямо здесь, в текущем каталоге, в котором вы сидите. И он будет исполняемым (потому что, например, вы выпустили chmod +x myscript.sh), экономя ваше бесценное время на будущее раз :-)Есть три основные причины, по которым вы можете получить сообщение об ошибке:
файл не является исполняемым запустите chmod +x <myscriptname.sh>, чтобы исправить, что раздел не позволяет запускать скрипты (установлен «noexec») скопируйте скрипт на /usr/local/bin, строка #! имеет ошибку, убедитесь, что первая строка - #!/bin/sh или #!/bin/bashЕсли ваша первая строка выглядит правильно, но все еще не работает, сделайте убедитесь, что файл не имеет окончаний строки DOS.
Ошибка будет выглядеть примерно так:
$ ./myscript.sh
bash: ./myscript.sh: /bin/bash^M: bad interpreter: No such file or directory
Вы можете исправить это, запустив dos2unix <myscriptname.sh>, или если вы это есть, perl -p -i -e 's/\r\n$/\n/' <myscriptname.sh>.
И ответ заключается в том, что sh - это имя для очень популярной оболочки. Но устарели и заменены другими. В настоящее время sh связан с другими оболочками, установленными на машине. например У меня есть баш. Запуск любой оболочки из sh обычно запускает некоторый режим совместимости с оригинальным поведением «оболочки».
Так что решение довольно простое. Посмотрите, что находится за командой sh (ls -al / bin / sh), и поставьте #! / Bin / whatever_you_find_there в качестве первой строки (или если что-то подобное в вашем скрипте отредактирует).
И, альтернативно, может возникнуть ошибка в самом скрипте. Подобно зависимости, которую выполняет sh, но не интерпретатор, который фактически используется.