[解決済み] Bashの変数代入でCommand not foundエラーが発生する
質問
test.shというスクリプトを持っています。
#!/bin/bash
STR = "Hello World"
echo $STR
を実行すると
sh test.sh
こうなるんです。
test.sh: line 2: STR: command not found
私は何を間違えているのでしょうか? ネットで超初心者向けのbashスクリプトのチュートリアルを見ると、このように変数を宣言するように書いてあるのですが......。だから、私は何が間違っているのか分からない。
Ubuntu Server 9.10を使用しています。そして、はい、bashは次の場所にあります。
/bin/bash
.
解決方法は?
の周りにスペースを入れることはできません。
=
の記号を使用します。
書くとき。
STR = "foo"
という名前のコマンドを実行しようとします。
STR
を2つの引数(文字列
=
と
foo
)
書くとき。
STR =foo
という名前のコマンドを実行しようとします。
STR
を1つの引数(文字列
=foo
)
書くとき。
STR= foo
bash はコマンドを実行しようとします。
foo
で、STRを空文字列に設定した環境。
これで明確になるのか、単なる難読化なのかはわかりませんが、注意してください。
-
というコマンドがありますが、最初のコマンドはまさにそれと同じです。
STR "=" "foo"
, -
と同じです。
STR "=foo"
, -
と同等であり、最後が
STR="" foo
.
の該当箇所は sh 言語仕様、セクション 2.9.1 と記載されています。
単純コマンドとは、任意の変数への代入とリダイレクションを任意の順序で行い、その後に単語とリダイレクションを任意に続け、制御演算子で終了させるものである。
その中で
word
は、bashが実行しようとするコマンドです。 を含む任意の文字列は
=
(文字列の先頭以外の任意の位置)で、リダイレクションでなく
=
が有効な変数名であれば変数代入、リダイレクションでも変数代入でもない文字列はコマンドとなります。 で
STR = "foo"
,
STR
は変数の代入ではありません。
関連
-
[解決済み] Bashスクリプトで引数を反復処理する方法
-
[解決済み] ConcatenationとAppendの違いについて【終了しました
-
[解決済み] BashでDo-whileループをエミュレートする
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashでコマンドライン引数を解析するには?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] Bashで変数が設定されているかどうかを確認する方法は?
-
[解決済み] Bashで標準出力と標準エラーの両方をファイルにリダイレクトして追記する方法
-
[解決済み] Bashで変数が数値であるかどうかをテストするにはどうすればよいですか?
-
[解決済み】bashで1つのコマンドでシェル変数にデフォルト値を割り当てる。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] (standard_in) 1: bash スクリプトのシンタックスエラー
-
[解決済み] mkdir コマンドが bash スクリプトで見つかりません。
-
[解決済み] cmake execute_process COMMAND [重複]。
-
[解決済み] eval "$(docker-machine env default) "とする。
-
[解決済み] ssh / リモートbashコマンドでシングルクォート文字をエスケープするにはどうすればよいですか?
-
[解決済み] シンプルなAsciiテーブルをCSVに変換する【終了】。
-
[解決済み] シェルスクリプトでこのエラーを解決するにはどうしたらよいでしょうか。"読み取り。Illegal option -t "というエラーはどうすれば解決できますか?
-
[解決済み] "[0: コマンドが見つかりません]" in Bash [重複].
-
[解決済み] シェルスクリプトでの連想配列
-
[解決済み] Grep 'binary file matches'. どうすれば正常なgrepの出力が得られるか?[重複]する