Bashを使用した構成ファイルの解析
プログラム構成をコードから分離しておくことが重要です。これにより、プログラマー以外の人は、プログラムのコードを変更することなく構成を変更できます。コンパイルされたバイナリ実行可能ファイルでは、ソースファイル(オープンソースプログラムで持っている)へのアクセスだけでなく、プログラマーのスキルセットも必要になるため、プログラマー以外の人にとっては不可能です。それを持っている人はほとんどいませんし、ほとんどの人は学びたくないのです。
Bashなどのシェル言語では、シェルスクリプトがバイナリ形式にコンパイルされていないため、定義上、ソースコードにアクセスできます。その開放性にもかかわらず、プログラマー以外の人がシェルスクリプトを探し回って変更することは特に良い考えではありません。知識のある開発者やシステム管理者でさえ、エラーや悪化を引き起こす偶発的な変更を加える可能性があります。
したがって、構成アイテムを簡単に保守できるテキストファイルに配置すると、分離が可能になり、プログラマー以外の人がコードに意図しない変更を加える危険なしに構成要素を編集できるようになります。多くの開発者は、ユーザーが開発者であることを期待していないため、コンパイル言語で記述されたプログラムに対してこれを行います。同じ理由の多くで、解釈されたシェル言語でこれを行うことも理にかなっています。
他の多くの言語と同様に、ASCIIテキスト構成ファイルを読み取って解析し、変数名を読み取り、プログラムコードの実行時に値を設定するBashプログラムのコードを記述できます。たとえば、構成ファイルは次のようになります。
var1=LinuxGeek46
var2=Opensource.com
プログラムはそのファイルを読み取り、各行を解析し、値を各変数に設定します。
Bashは、ソーシングと呼ばれる変数の解析と設定にはるかに簡単な方法を使用します 。実行可能シェルプログラムから外部ファイルを調達することは、そのファイルのコンテンツ全体をシェルプログラムに含めるための簡単な方法です。ある意味では、これはコンパイルされた言語のinclude
に非常によく似ています。 実行時にライブラリファイルを含むステートメント。このようなファイルには、変数の割り当てを含む、あらゆるタイプのBashコードを含めることができます。
いつものように、説明するよりもデモンストレーションする方が簡単です。
まず、~/bin
を作成します ディレクトリ(まだ存在しない場合)を作成し、現在の作業ディレクトリ(PWD)にします。 Linuxファイルシステム階層標準は~/bin
を定義します ユーザーが実行可能ファイルを保存するための適切な場所として。
このディレクトリに新しいファイルを作成します。 main
という名前を付けます 実行可能にします:
[dboth@david bin]$ touch main
[dboth@david bin]$ chmod +x main
[dboth@david bin]$
この実行可能ファイルに次のコンテンツを追加します。
#!/bin/bash
Name="LinuxGeek"
echo $Name
そして、このBashプログラムを実行します:
[dboth@david bin]$ ./main
LinuxGeek
[dboth@david bin]$
新しいファイルを作成し、それを~/bin/data
と呼びます 。このファイルは実行可能である必要はありません。次の情報を追加します:
# Sourced code and variables
echo "This is the sourced code from the data file."
FirstName="David"
LastName="Both"
main
に3行追加します 次のようにプログラムします:
#!/bin/bash
Name="LinuxGeek"
echo $Name
source ~/bin/data
echo "First name: $FirstName"
echo "LastName: $LastName"
プログラムを再実行します:
[dboth@david bin]$ ./main
LinuxGeek
This is the sourced code from the data file.
First name: David
LastName: Both
[dboth@david bin]$
ソーシングについて知っておくべきもう1つの本当にクールなことがあります。単一のドット(.
)を使用できます )source
のショートカットとして 指図。 main
を変更します .
を置き換えるファイル source
の代わりに :
#!/bin/bash
Name="LinuxGeek"
echo $Name
. ~/bin/data
echo "First name: $FirstName"
echo "LastName: $LastName"
そして、プログラムを再実行してください。結果は前回の実行とまったく同じになるはずです。
Bashを使用するすべてのLinuxホスト(Bashはすべてのディストリビューションのデフォルトシェルであるため、ほとんどすべてです)には、優れた組み込みのソーシングの例がいくつか含まれています。
Bashシェルを起動するときは常に、その環境を使用できるように構成する必要があります。 Bash環境の構成に使用される5つのメインファイルと1つのディレクトリがあります。それらは主な機能とともにここにリストされています:
-
/etc/profile
:システム全体の環境とスタートアッププログラム -
/etc/bashrc
:システム全体の関数とエイリアス -
/etc/profile.d/
:vim
などのさまざまなコマンドラインツールを構成するためのシステム全体のスクリプトを含むディレクトリ およびmc
およびシステム管理者が作成するカスタム構成スクリプト -
~/.bash_profile
:ユーザー固有の環境とスタートアッププログラム -
~/.bashrc
:ユーザー固有のエイリアスと関数 -
~/.bash_logout
:ユーザーがログアウトしたときに実行するユーザー固有のコマンド
これらのファイルを介して実行シーケンスをトレースし、非ログインBashの初期化とログインBashの初期化にどちらのシーケンスを使用するかを決定してください。これは、Linuxトレーニングシリーズの第1巻の第17章で行いました。 Linuxの使用と管理:ゼロからシステム管理者へ 。
ヒントを1つあげます。すべては~/.bashrc
で始まります スクリプト。
この記事では、コードと変数の割り当てをBashプログラムに取り込むためのソーシングについて説明しました。構成ファイルから変数を解析するこの方法は、高速で、簡単で、柔軟性があります。これは、Bashコードを変数の割り当てから分離して、プログラマー以外の人がそれらの変数の値を設定できるようにする方法を提供します。
-
AirDroidファイル転送でファイルを転送する
スマートフォンの急増に伴い、PCとスマートフォン間でファイルを転送する必要性も今日の世界で重要になっています。しかし、どのようにデータを転送しますか?そのような場合、Airdroidのようなファイル転送ツールが助けになります。 パート1:AirDroidとは何ですか?AirDroidを使用してファイルを転送する方法 Airdroidは、同じIPネットワーク上にある限り、PCとスマートフォン間でファイルを共有できるファイル転送ソフトウェアです。コンピューターとスマートフォンの間だけでなく、同じIPネットワークに接続されている任意のデバイスとファイルを交換することもできます。 このソフトウ
-
WiFiファイル転送を使用してAndroidとPC間でファイルを転送する
ネットワークを介してAndroidスマートフォンまたはタブレット間でファイルを共有することは、大幅な時間の節約になります。この記事では、その手順を説明します。 USB経由でファイルを転送することもできますが、ワイヤレスでタスクを実行する方がはるかに簡単です。これを実現するための唯一の前提条件は、両方のデバイスが同じネットワークに接続されている必要があることです。 この機能を実現するには、いくつかの方法があります。ただし、プロセスをWi-Fiファイル転送と呼ばれる1つのアプリに絞り込みました。 。アプリの無料バージョンはかっこいいですが、5MB未満のファイルの転送のみを許可するサイズ制限があり