Скрипты Bash — почему echo не выполняется?

Скрипты Bash — почему echo не выполняется?

Я попытался создать bash-скрипт.

vi hello_world

Внутри сценария, который я написал

#!/bin/bash
text="Hello World"
echo $text

Когда я печатаю

echo $hello_world

Разве скрипт не должен запускаться, а затем я печатаю "Hello World"? Или что-то не так в синтаксисе?

решение1

Вы используете неправильный синтаксис для вызова скрипта.

echo $hello_world

выводит содержимое переменной hello_world.

Для выполнения скрипта оболочки вам необходимо ввести путь к скрипту hello_world:

./hello_world

Выполняется hello_world, если находится в текущем рабочем каталоге.

Чтобы запустить скрипт напрямую (т.е. с помощью ./script), вам нужно сделать его исполняемым. Вы можете сделать это с помощью:

chmod +x ./hello_world

или с помощью диалогового окна свойств файла вашего файлового менеджера.

решение2

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

./hello_world

Если у вашего скрипта еще нет разрешений на выполнение, вы можете сделать это с помощьюchmod +x hello_world

решение3

Возможно, местоположение bashотличается.

Вместо этого вы можете использовать bootstrap.

#!/usr/bin/env bash
text="Hello World"
echo $text

EDIT: Это было настолько очевидно, что я не увидел неправильного синтаксиса для запуска скрипта. Попробуйте:

./hello_world

Связанный контент