Linux Bash シェルの変数に関する 5 つの一般的な落とし穴
Bash スクリプト言語は、Linux の操作変数をサポートしています。ただし、他の一般的なプログラミング言語での開発経験がある場合、Bash を使用して変数を処理するとエラーが発生しやすい可能性があります。これは、その構文が他の言語とは異なるためです(一部の開発者にとっては少し奇妙ですらあります)。
この記事では、私の経験に基づいた 5 つの実践的なヒントを紹介します。これを読んだ後は、不要な間違いを避けるのに役立ちます。
0.等号の両側にスペースを入れることはできません
Python などの多くの言語では、コードの可読性が向上するため、等号の周りにスペースを追加することをお勧めします。
ただし、Bash では、変数を定義するときに余分なスペースを追加する必要はありません。
たとえば、name
という名前の変数を次のように宣言するとします。
リーリー
リーリー
上記のとおり、不要なスペースを追加したため、Bash はname を変数ではなくコマンドとして扱います。
リーリー
1. 配列を正しく定義します
Bash で配列を定義するのは難しくありません。次の例に示すように、一対のかっこを使用してすべての要素を囲むだけです。 リーリー格言にあるように、「成功か失敗は細部で決まる」。以前、Bash スクリプトを書いているときに重大な間違いを犯しました。私は配列内の各要素を区切るのにスペースではなくカンマをよく使用します。
リーリーBash はカンマを区切り文字として扱いません。また、
names 配列には、予想される 3 つの要素ではなく、Yang,Elon,Bill
という 1 つの要素しかありません。
Bash で変数を宣言する場合、引用符を使用するには 3 つのオプションがあります:
- 引用符なし
- 一重引用符を使用してください
- 二重引用符を使用してください
- デフォルトでは、Bash のすべての値は文字列です。したがって、スペースが必要ない場合は、引用符を使用する必要はありません。 (繰り返しになりますが、引用符なしでは文字列を定義できない他の言語とは少し異なります)
引用符を使用する必要がある場合は、
一重引用符と二重引用符の違いに注意してください。 例として、以下のように 3 つの変数を宣言してみましょう。では、
truth1 と truth2
の違いは何でしょうか?
<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/887/227/170774695878192.png" class="lazy" alt="关于 Linux Bash Shell 中变量的 5 个易错点"><p>如果你打印它们,你会看到 <code style="max-width:90%">truth1
是 ${name} is amazing.
。而 truth2
是 Yang is amazing.
。
总而言之,一对单引号内的字符串将始终被解释为它的本身。
3. 避免在命令中使用反引号
在 Bash 中,我们可以将命令的结果保存到变量中。有两种可能的方法来做到这一点:
-
variable=
command“ -
variable=$(command)
例如,要保存 ls
命令的结果,我们可以这样写:
file_list=`ls`
或者
file_list=$(ls)
但是,这里的最佳实践始终是使用第二种方法,尤其是在编写较长的脚本时。因为反引号和单引号看起来很相似,有时你可能会混淆它们。
4. 避免使用特殊名称
一些名称在 Linux 中被预定义为环境变量,如 USER
、HOME
、PATH
等。我们可以使用 printenv
命令列出它们。
显然,我们不应该用与环境变量相同的名称来声明我们的变量。
好消息是 Linux 中所有的环境变量都是用大写字母写的,所以我们可以用小写字母来自定义变量,以区别环境变量。这是一个好习惯。
以上がLinux Bash シェルの変数に関する 5 つの一般的な落とし穴の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Centosとubuntuの重要な違いは次のとおりです。起源(CentosはRed Hat、for Enterprises、UbuntuはDebianに由来します。個人用のDebianに由来します)、パッケージ管理(CentosはYumを使用し、安定性に焦点を当てます。チュートリアルとドキュメント)、使用(Centosはサーバーに偏っています。Ubuntuはサーバーやデスクトップに適しています)、その他の違いにはインストールのシンプルさが含まれます(Centos is Thin)

Centosは廃止されました、代替品には次のものが含まれます。1。RockyLinux(最高の互換性)。 2。アルマリン(Centosと互換性); 3。Ubuntuサーバー(設定が必要); 4。RedHat Enterprise Linux(コマーシャルバージョン、有料ライセンス); 5。OracleLinux(CentosとRhelと互換性があります)。移行する場合、考慮事項は次のとおりです。互換性、可用性、サポート、コスト、およびコミュニティサポート。

Centosのインストール手順:ISO画像をダウンロードし、起動可能なメディアを燃やします。起動してインストールソースを選択します。言語とキーボードのレイアウトを選択します。ネットワークを構成します。ハードディスクをパーティション化します。システムクロックを設定します。ルートユーザーを作成します。ソフトウェアパッケージを選択します。インストールを開始します。インストールが完了した後、ハードディスクから再起動して起動します。

Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

VSコードシステムの要件:オペレーティングシステム:オペレーティングシステム:Windows 10以降、MACOS 10.12以上、Linux Distributionプロセッサ:最小1.6 GHz、推奨2.0 GHz以上のメモリ:最小512 MB、推奨4 GB以上のストレージスペース:最低250 MB以上:その他の要件を推奨:安定ネットワーク接続、XORG/WAYLAND(Linux)

Dockerプロセス表示方法:1。DockerCLIコマンド:Docker PS; 2。SystemDCLIコマンド:SystemCTL Status Docker; 3。CLIコマンドを作成するDocker:Docker-Compose PS。 4。プロセスエクスプローラー(Windows); 5。 /procディレクトリ(Linux)。

障害のあるDocker画像ビルドのトラブルシューティング手順:DockerFileの構文と依存関係バージョンを確認します。ビルドコンテキストに必要なソースコードと依存関係が含まれているかどうかを確認します。エラーの詳細については、ビルドログを表示します。 -targetオプションを使用して、階層フェーズを構築して障害点を識別します。 Dockerエンジンの最新バージョンを使用してください。 -t [image-name]:デバッグモードで画像を作成して、問題をデバッグします。ディスクスペースを確認し、十分であることを確認してください。 Selinuxを無効にして、ビルドプロセスへの干渉を防ぎます。コミュニティプラットフォームに助けを求め、DockerFilesを提供し、より具体的な提案のためにログの説明を作成します。
