У меня создается впечатление, что если я включу строку
#!/bin/bash
в начале моего файла, она будет распознана как сценарий bash, который я могу запустить только с помощью
file.sh
вместо
sh file.sh
Но в моем случае file.sh дает что-то вроде test.sh дает test.sh: command not found. Почему это?
UPDATE
Я замечаю, что мне нужно использовать ./. Но я думал, что он все равно будет выглядеть в текущем каталоге?
./test.sh
Сначала вам нужно убедиться, что файл выполним:
chmod +x file.sh
И затем, чтобы запустить его, вам либо нужно поместить его в свой PATH, то есть один из каталогов файлов, которые ищет ОС при поиске файлов, которые вы можете найти с помощью echo $PATH, или вам нужно ввести:
./file.sh
Скорее чем просто тип file.sh.
Вы можете просто набрать file.sh, если это в вашей PATH, которую я рекомендую. Хорошее место в ~/bin. Создайте эту папку, если ее там нет, и под Ubuntu она будет добавлена к вашему пути при входе в систему.
Сначала вам нужно убедиться, что файл выполним:
chmod +x file.sh
И затем, чтобы запустить его, вам либо нужно поместить его в свой PATH, то есть один из каталогов файлов, которые ищет ОС при поиске файлов, которые вы можете найти с помощью echo $PATH, или вам нужно ввести:
./file.sh
Скорее чем просто тип file.sh.
Вы можете просто набрать file.sh, если это в вашей PATH, которую я рекомендую. Хорошее место в ~/bin. Создайте эту папку, если ее там нет, и под Ubuntu она будет добавлена к вашему пути при входе в систему.
Сначала вам нужно убедиться, что файл выполним:
chmod +x file.sh
И затем, чтобы запустить его, вам либо нужно поместить его в свой PATH, то есть один из каталогов файлов, которые ищет ОС при поиске файлов, которые вы можете найти с помощью echo $PATH, или вам нужно ввести:
./file.sh
Скорее чем просто тип file.sh.
Вы можете просто набрать file.sh, если это в вашей PATH, которую я рекомендую. Хорошее место в ~/bin. Создайте эту папку, если ее там нет, и под Ubuntu она будет добавлена к вашему пути при входе в систему.
Сначала вам нужно убедиться, что файл выполним:
chmod +x file.sh
И затем, чтобы запустить его, вам либо нужно поместить его в свой PATH, то есть один из каталогов файлов, которые ищет ОС при поиске файлов, которые вы можете найти с помощью echo $PATH, или вам нужно ввести:
./file.sh
Скорее чем просто тип file.sh.
Вы можете просто набрать file.sh, если это в вашей PATH, которую я рекомендую. Хорошее место в ~/bin. Создайте эту папку, если ее там нет, и под Ubuntu она будет добавлена к вашему пути при входе в систему.
Сначала вам нужно убедиться, что файл выполним:
chmod +x file.sh
И затем, чтобы запустить его, вам либо нужно поместить его в свой PATH, то есть один из каталогов файлов, которые ищет ОС при поиске файлов, которые вы можете найти с помощью echo $PATH, или вам нужно ввести:
./file.sh
Скорее чем просто тип file.sh.
Вы можете просто набрать file.sh, если это в вашей PATH, которую я рекомендую. Хорошее место в ~/bin. Создайте эту папку, если ее там нет, и под Ubuntu она будет добавлена к вашему пути при входе в систему.
Сначала вам нужно убедиться, что файл выполним:
chmod +x file.sh
И затем, чтобы запустить его, вам либо нужно поместить его в свой PATH, то есть один из каталогов файлов, которые ищет ОС при поиске файлов, которые вы можете найти с помощью echo $PATH, или вам нужно ввести:
./file.sh
Скорее чем просто тип file.sh.
Вы можете просто набрать file.sh, если это в вашей PATH, которую я рекомендую. Хорошее место в ~/bin. Создайте эту папку, если ее там нет, и под Ubuntu она будет добавлена к вашему пути при входе в систему.
Сначала вам нужно убедиться, что файл выполним:
chmod +x file.sh
И затем, чтобы запустить его, вам либо нужно поместить его в свой PATH, то есть один из каталогов файлов, которые ищет ОС при поиске файлов, которые вы можете найти с помощью echo $PATH, или вам нужно ввести:
./file.sh
Скорее чем просто тип file.sh.
Вы можете просто набрать file.sh, если это в вашей PATH, которую я рекомендую. Хорошее место в ~/bin. Создайте эту папку, если ее там нет, и под Ubuntu она будет добавлена к вашему пути при входе в систему.
Сначала вам нужно убедиться, что файл выполним:
chmod +x file.sh
И затем, чтобы запустить его, вам либо нужно поместить его в свой PATH, то есть один из каталогов файлов, которые ищет ОС при поиске файлов, которые вы можете найти с помощью echo $PATH, или вам нужно ввести:
./file.sh
Скорее чем просто тип file.sh.
Вы можете просто набрать file.sh, если это в вашей PATH, которую я рекомендую. Хорошее место в ~/bin. Создайте эту папку, если ее там нет, и под Ubuntu она будет добавлена к вашему пути при входе в систему.
Вам нужно запустить его с ./file.sh, потому что текущий каталог не находится в PATH.
Если этого недостаточно, потому что вы пропустили, что предлагает frabjous, chmod a+x, вам следует начинать программы, начинающиеся с shebang #!/bin/bash с
bash file.sh
not
sh file.sh
, даже если sh является символической ссылкой на / bin / bash.
Оболочка проверяет, как она была вызвана, и может быть вызвана как sh для работы в совместимом режиме, поэтому она может не справиться с некоторыми bashisms, которые будут работать, если вызывается как bash file.sh.
Это не ваша проблема, но может стать одной, если вы не знаете этого тонкого различия.
Вам нужно запустить его с ./file.sh, потому что текущий каталог не находится в PATH.
Если этого недостаточно, потому что вы пропустили, что предлагает frabjous, chmod a+x, вам следует начинать программы, начинающиеся с shebang #!/bin/bash с
bash file.sh
not
sh file.sh
, даже если sh является символической ссылкой на / bin / bash.
Оболочка проверяет, как она была вызвана, и может быть вызвана как sh для работы в совместимом режиме, поэтому она может не справиться с некоторыми bashisms, которые будут работать, если вызывается как bash file.sh.
Это не ваша проблема, но может стать одной, если вы не знаете этого тонкого различия.
Вам нужно запустить его с ./file.sh, потому что текущий каталог не находится в PATH.
Если этого недостаточно, потому что вы пропустили, что предлагает frabjous, chmod a+x, вам следует начинать программы, начинающиеся с shebang #!/bin/bash с
bash file.sh
not
sh file.sh
, даже если sh является символической ссылкой на / bin / bash.
Оболочка проверяет, как она была вызвана, и может быть вызвана как sh для работы в совместимом режиме, поэтому она может не справиться с некоторыми bashisms, которые будут работать, если вызывается как bash file.sh.
Это не ваша проблема, но может стать одной, если вы не знаете этого тонкого различия.
Вам нужно запустить его с ./file.sh, потому что текущий каталог не находится в PATH.
Если этого недостаточно, потому что вы пропустили, что предлагает frabjous, chmod a+x, вам следует начинать программы, начинающиеся с shebang #!/bin/bash с
bash file.sh
not
sh file.sh
, даже если sh является символической ссылкой на / bin / bash.
Оболочка проверяет, как она была вызвана, и может быть вызвана как sh для работы в совместимом режиме, поэтому она может не справиться с некоторыми bashisms, которые будут работать, если вызывается как bash file.sh.
Это не ваша проблема, но может стать одной, если вы не знаете этого тонкого различия.
Вам нужно запустить его с ./file.sh, потому что текущий каталог не находится в PATH.
Если этого недостаточно, потому что вы пропустили, что предлагает frabjous, chmod a+x, вам следует начинать программы, начинающиеся с shebang #!/bin/bash с
bash file.sh
not
sh file.sh
, даже если sh является символической ссылкой на / bin / bash.
Оболочка проверяет, как она была вызвана, и может быть вызвана как sh для работы в совместимом режиме, поэтому она может не справиться с некоторыми bashisms, которые будут работать, если вызывается как bash file.sh.
Это не ваша проблема, но может стать одной, если вы не знаете этого тонкого различия.
Вам нужно запустить его с ./file.sh, потому что текущий каталог не находится в PATH.
Если этого недостаточно, потому что вы пропустили, что предлагает frabjous, chmod a+x, вам следует начинать программы, начинающиеся с shebang #!/bin/bash с
bash file.sh
not
sh file.sh
, даже если sh является символической ссылкой на / bin / bash.
Оболочка проверяет, как она была вызвана, и может быть вызвана как sh для работы в совместимом режиме, поэтому она может не справиться с некоторыми bashisms, которые будут работать, если вызывается как bash file.sh.
Это не ваша проблема, но может стать одной, если вы не знаете этого тонкого различия.
Вам нужно запустить его с ./file.sh, потому что текущий каталог не находится в PATH.
Если этого недостаточно, потому что вы пропустили, что предлагает frabjous, chmod a+x, вам следует начинать программы, начинающиеся с shebang #!/bin/bash с
bash file.sh
not
sh file.sh
, даже если sh является символической ссылкой на / bin / bash.
Оболочка проверяет, как она была вызвана, и может быть вызвана как sh для работы в совместимом режиме, поэтому она может не справиться с некоторыми bashisms, которые будут работать, если вызывается как bash file.sh.
Это не ваша проблема, но может стать одной, если вы не знаете этого тонкого различия.
Вам нужно запустить его с ./file.sh, потому что текущий каталог не находится в PATH.
Если этого недостаточно, потому что вы пропустили, что предлагает frabjous, chmod a+x, вам следует начинать программы, начинающиеся с shebang #!/bin/bash с
bash file.sh
not
sh file.sh
, даже если sh является символической ссылкой на / bin / bash.
Оболочка проверяет, как она была вызвана, и может быть вызвана как sh для работы в совместимом режиме, поэтому она может не справиться с некоторыми bashisms, которые будут работать, если вызывается как bash file.sh.
Это не ваша проблема, но может стать одной, если вы не знаете этого тонкого различия.