В настоящее время я работаю над проектом, результатом которого является файл .sh
. Когда я запускаю файл с помощью ./file.sh
, он работает нормально. Но по словам проф. мы должны запустить файл, используя этот оператор. Batch file.sh
. Это не работает, и возвращаются ошибки batch accepts no parameters
. Что имеет смысл после прочтения справочной страницы.
Как правильно использовать пакетную команду? Возможно ли вообще запустить его так, как хочет профессор?
@jctamin FYI Unix не использует файловые префиксы для определения типа содержимого файла, а команды Unix не должны заканчиваться префиксом (в противном случае, если вы в будущем перепишете свой сценарий оболочки как C или perl или что-то еще, вам придется переименуйте его и измените везде, где он вызывается), поэтому говорить the deliverable is a .sh file.
не очень хорошая формулировка, поскольку «файл .sh» может содержать что угодно, а команда, содержащая сценарий оболочки, не должна иметь суффикс, .sh или что-то еще. Я думаю, что вы пытаетесь сказать просто the deliverable is a shell script
.
Ах, я вижу, это полезно знать. Я все еще учусь и ценю объяснения.
Согласно вашему описанию, файл, который вы пытаетесь выполнить, должен выполняться не с Партия, а с Баш/Шелл.
После Пакетный файл пакет не должен запускать программы с расширением ш (ш означает ракушка).
Вы можете проверить, с каким интерпретатором следует запускать программу, которую вы пытаетесь использовать, следующими способами:
После нахождения правильного интерпретатора можно запустить программу с его вызовом (т.е. ш ./ваша_программа.ш)
Ваш профессор имел в виду
bash
, а неbatch
, большая разница. Он бы указал bash, поскольку в * nix есть несколько оболочек, и он специально хочет, чтобы вы использовали bash. Очевидно, вы можете использовать в сценарии шебанг, то есть#!/usr/bin/bash
, который сообщит системе, какую оболочку использовать, и вы можете просто запустить./file.sh
, учитывая тот факт, что он также имеет права на выполнение.