変数に値を割り当てる際の「STR:コマンドが見つかりません」


9

「test.sh」というシェルスクリプトに次の行を入力しました。

#!/bin/bash
echo Hello World
STR=”Hello Again
echo $STR

chmodを実行可能にした後、スクリプトをで実行しました./test.sh。しかし、私はメッセージを受け取ります

./test.sh: line 3  STR: Command not found

何が悪いのですか?


1
terdonの答えはあなたの質問を解決しましたか?そうでない場合は、変数割り当ての周りに誤ってスペースがある可能性があります。
アロニカル2016

@Vokerは私の提案に基づいた文体のコメントです。コードブロックではなくエラーメッセージにBlockquoteを使用するのが最善だと思います。最後に、これはコードではなく、Bashインタープリターが返すテキストです。
fedorqui

@fedorquiなんで?引用ブロックは書式を保持していない、彼らは特殊文字を解釈する(例えば*_#)値下げなど、およびスクリーンリーダーソフトウェアによって異なりレンダリングされます。コンピュータによって与えられたり受け取られたりするものはすべてコードブロックにあるべきだと思います。正確なフォーマットがいつ関連するかはわかりません。特に、ユニコードが関係するこのようなことを扱う場合。
terdon

@terdon これは実際にはケースに依存し、ログ/警告/エラーメッセージの形式追加して、ワードラップを可能にし、改行を保持するというリクエストさえあります。私にとっては、このような行の場合、引用ブロックを使用することをお勧めします。コードやエラーとは何かを理解しやすくなるからです。
fedorqui

@fedorquiメタに変換する必要があると思いますが、コンピュータで読み取りまたは生成されたメッセージを投稿するときは常に、固定幅フォントと正確なフォーマットの再現を優先します。
terdon

回答:


20

そのスクリプトを作成するために何を使用していますか?質問にある引用文字が間違っています。それらは通常の二重引用符(")ではなくです。通常の引用は次のとおりです。

$ uniprops '"' | head -1
U+0022 "› \N{QUOTATION MARK}

あなたのものは:

$ uniprops '”' | head -1
U+201D ‹”› \N{RIGHT DOUBLE QUOTATION MARK}

したがって、通常の引用符を使用するだけで大​​丈夫です。

#!/bin/bash
echo Hello World
STR="Hello Again"
echo "$STR" ## Get into the habit of ALWAYS quoting your variables as well

返信Terdonをありがとう。ファイル内の二重引用符は正しいです。投稿はメールからのものでした。
ジェイシルバー

1
unipropsかっこいいね。ページを見つけまし(それは私たち自身のtchristですか?)。ソースからダウンロードする必要がありますか、それともパッケージマネージャーで入手できますか?E: Unable to locate package uniprops
TRiG 2016

1
私はPerlをあまり使用していません(かろうじてまったく使用していません)。Unicodeについて最低限以上のことを知りたいだけです。
TRiG 2016

1
@TRiGよく、Ubuntuでは、それは非常に簡単でsudo apt-get install cpanminus; sudo cpanm Unicode::Tussleunipropsコマンドを実行します。もちろん、tchristはいまいましいことを書いたので、チャットで彼に質問することもできます:)
terdon

1
残念ながらいつもこのようなナンセンスに出くわします。私の雇用主の特定のwikiシステムは、ハイフンマイナス-U + 002DをハイフンU + 2010(または同様のもの)に変換する厄介な癖を持っているようです。次に、uname ‐a動作が停止するようなもの:-/。電子メールクライアントは、同様の悪意のある習慣を持っていることが多く、特にHTML形式を使用する場合は、プレーンテキストの電子メールを好むもう1つの理由です。
デジタルトラウマ2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.