問題タブ [shellcheck]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bash - 位置変数を使用しているときに、SC2001 (「代わりに ${variable//search/replace} を使用できるかどうかを確認してください」) を解決することは可能ですか?
可変位置にある可変文字列内の任意の文字を可変置換で置き換えるためのワンライナーを探しています。私はこの実用的な解決策を思いつきました:
使用例:
残念ながら、現在のソリューションを含むスクリプトで shellcheck を実行すると、次のように表示されます。
sed にパイプする代わりに、提案されているようにパラメーター展開を使用したいのですが、位置変数を使用する場合の適切なフォーマットについては不明です。公式ドキュメントでは、文字列内の配置についてまったく議論していないようです。
これは可能ですか?
bash - 「while read」を使用するときに、リモートサーバーに渡される「if」ステートメントを適切にフォーマットする方法は?
Ubuntu 18
バッシュ 4.4.0
ディレクトリが存在するかどうかを確認するために if ステートメントを渡したいと思っています。もしそうなら、私はいくつかのコマンドとファイルをしたい. 同様の投稿を読みましたが、シェルチェックは私のフォーマットについて不平を言っています。
脚本:
シェルチェックの苦情:
よろしくお願いします。
bash - ソースファイルがスクリプトの先頭にある変数を表している場合、shellcheck が失敗するのはなぜですか?
Ubuntu 16.04
バッシュ 4.3.48
shellcheck
ソース ファイルがスクリプトの先頭にある $variablesを表している場合、 が失敗するのはなぜですか?
簡単なスクリプトを次に示します。
ここに私のソースファイルがあります:
からの返信は次のshellcheck
とおりです。
$variablesがソース ファイルにあることをshellcheck
知る方法はありますか?
Ubuntu 16.04でこれを機能させるために私がしたことは次のとおりです
@Dash-o は以下の手順を説明しました。
まず、次のように、ソース ファイル宣言の上の行にsource ディレクティブを追加します。
# shellcheck source=/path/to/sourcefile
次に、次のようにスクリプトの前に-xオプションを付けて実行shellcheck
します。
shellcheck -x start.sh
-xオプションを使用すると、 source ディレクティブの直下で宣言されたソース ファイルshellcheck
に従います。コマンドを実行すると、次のエラーが表示されました。
@Bayou は、私の OS には の新しいバージョンが必要であると述べましたshellcheck
。Ubuntu 16.04 のインストールを確認しました。私のサーバーshellcheck
には、Ubuntu 16.04 が提供する最新バージョンである 0.3.7 があったので、shellcheck
開発者から最新のバイナリを入手してインストールしました。
コマンドを実行しましたが、shellcheck -x start.sh
エラーはありませんでした。
shellcheck
それから私は私にいくつかのエラーを与えることを余儀なくされました. cat $myVariable
スクリプトの最後 に追加しました。
私は自分の理論をテストし、ソースファイルshellcheck
をたどったところ、予期していたエラーが発生しました。
次に、 -xshellcheck
オプションを指定せずに実行したところ、驚いたことに次のエラーが表示 されました。
そのため、 -xshellcheck
オプションを指定せずに最新バージョンに更新すると、コマンド ラインで-xオプションが欠落しているというエラーも表示されます。そこで、start.shのsourcefile ディレクティブをコメント アウトすることにしました。
今、どうshellcheck
思う か見てみましょう
わああああ?したがって、私の単純なスクリプトではsourcefile ディレクティブは実際には必要ないように見えますか、それとも、シャープ記号がすでに sourcefile ディレクティブを開始しているため、シェルチェックはまだ sourcefile ディレクティブが番号記号でコメントアウトされているのを見ていますか? そのため、ソースファイル ディレクティブを完全に削除し、ソースファイルで割り当てられていない myVariable変数を参照する最後の行をコメント アウトしました。
shellcheck
次に、レポートを確認します。
-xオプションでエラーなし。Ubuntu 16.04の最新バージョンの単純なシェル スクリプトの先頭にsourcefile ディレクティブが必要ないかどうかを確認するために、 -xオプションなしで実行しました。shellcheck
shellcheck
つまり、ソース ファイルに従っていない場合は、開発者の github ( https://github.com/koalaman/shellcheckshellcheck
) から更新 し、次のように-xオプション を使用して、従うべきソース ファイルがあることを通知します。shellcheck
shellcheck
このサイトが毎日私を助けてくれるので、これが誰かに役立つことを願っています!