Bashスクリプト - エコーが実行されないのはなぜですか?

Bashスクリプト - エコーが実行されないのはなぜですか?

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が異なるかもしれません。

代わりにブートストラップを使用できます。

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

編集:これは明らかです。スクリプトの実行に無効な構文が表示されません。努力する:

./hello_world

関連情報