Linux で「スクリプト」を学びたいと思ったことはありますか? 思ったより簡単に。 スクリプト (シェルまたは bash スクリプトと呼ばれることが多い) は、内部に複雑なコードを含む実際のプログラムである場合があります。 また、Linux での作業をより迅速かつ簡単にするためにユーザーがまとめたタスクの長いリストにすぎない場合もあります。 これは、Linux でのシェル プログラミングに関する最高の初心者向けガイドです。

なんで台本作ってるの?
Linux でスクリプトを作成することは、非常に役立つスキルです。 一部の反復タスクは、bash スクリプトを使用して自動化できます。 うまくやれば、非常に生産的になり、より短い時間でより多くのことを達成できるようになります。
例: Arch Linux を最初から構築したばかりかもしれません。 オペレーティング システムがすべての必須パッケージと共にインストールされ、オペレーティング システムの起動時にデバイスを起動できます。 Arch Linux はセットアップに時間がかかるため、プロセスは完了していません。
この時点で、ユーザーは Bash スクリプトを記述して、すべてを一度に実行できます。 これはどれもプログラミングではなく、さらに言えば高度なものでもありません。 ただし、ユーザーは Arch Linux の仕組みを十分に理解しているため、構成後のプロセス (デスクトップ環境、ドライバー、ユーザー設定など) のほぼ全体を自動化できます。
bash プログラムの唯一の制限は、Linux と Bash の知識です! 作成は思ったより簡単です。
始める
コードを書くときは、物事を定義し、リソースをロードする必要があります。 シェルでプログラミングする場合、いくつかのことも指定する必要があります。 Bash プログラミングでは、これは「シバン」として知られています。 スクリプトで使用されるシバンは、スクリプトを実行する必要があるコンパイラをスクリプトに指示します。 これは、Bash またはシステムで使用可能なその他のスクリプトである可能性があります。 異なる言語には独自の言語があることに注意してください。
例:テキストを書くとき bPython 言語 、単語シバンは
#!/usr/bin/python
Bashには、使用できるさまざまなタイプのシバンがありますが、ほとんどのユーザーはおそらく見ただけです
#!/bin/bash
原則として、#! を使用します。 単純なスクリプトを作成する場合は /bin/bash を削除し、Linux から削除する予定はありません。 最新の Linux ディストリビューションはすべて同じバージョンの bash を使用しており、通常、bash シェルは同じ場所にあります。
有用であることが証明されている別のシバンは
#!/usr/bin/env bash
これは移植性を考慮して設計されており、スクリプトが他の Unix ライクなオペレーティング システム (BSD、macOS など) で実行するように設計されている場合に使用する必要があります。
ベストプラクティス
Bash でスクリプトを作成するのは、複雑なプロセスになる可能性があります (作成者が行う場合)。 ほとんどの場合、スクリプトはさまざまな操作の単なるコレクションです。 ファイルの転送、何かのダウンロード、ソフトウェアのインストールなど。
- Bash は、システム上のファイルとプロセスを操作するために設計された言語であることに注意してください。 Bash がニーズを満たしていれば、それで問題ありません。 ただし、高度なプログラミングの場合、Bash は実際には適切な選択ではないことを理解してください。Python などに移行した方がよいでしょう。
- Linux 以外でスクリプトを使用する予定がある場合は、スクリプトを「SH」互換にし、「.sh」形式にします。 他の UNIX ライクなオペレーティング システムには「bash ライクな」シェルがある場合もありますが、bash をまったく持たないものもあるため、準備しておくことをお勧めします。
- Bash シェルとその仕組みについて学びます。 それはあなたのテキストをより良く書くのに役立ちます。
- 常に Shebang を使用し、最も重要なことは、正しいものを使用することです。 これは、良いスクリプトと正しく機能しない悪いスクリプトの違いを意味する場合があります。
- 常にすべてのプロセスにコメントしてください。 XNUMX か月後にテキストに戻って、それが何を意味するのか疑問に思うかもしれません。そのため、テキストが十分に文書化されており、理解しやすいことが重要です (あなたとそれを見る可能性のある人にとって)。
コードを読みやすくします。 スクリプトが複雑でなくても、それは理にかなっていて、思ったよりも簡単に作成できるはずです。 - スクリプトを他の人に渡す前に、スクリプトのエラーをテストしてください。 他の人にエラーをテストさせないでください。 理想的には、スクリプトは、人々が使用するために送信される前に機能する必要があります。
スクリプトを作成する
スクリプト作成を開始するために必要なのは、テキスト エディターだけです。 単純なテキスト エディタで十分です。 複雑または包括的である必要はありません。 この例では、Gedit エディターを使用して簡単なウェルカム テキストを作成しています。
Gedit でスクリプトを作成して開く
名前付きのテキストを作成する 「あいさつ.sh」 Gedit エディター内で開きます。 スクリプトのこの最初の部分は、前述のようにシバンです。 これにより、スクリプトは、コードを理解するために何を使用する必要があるかをインタープリターに伝えることができます。
#!/ bin / bashに
次に、コメントを書きましょう。 これにより、スクリプトを使用するすべての人がコードの意図を理解できるようになります。 # 記号を使用して、スクリプトにコメントを追加できます。 その後、テキストによって何もキャプチャされません。
# 初めての Linux スクリプト
簡単な挨拶を印刷する
出力を印刷するには、bash で echo コマンドを使用します。 「Hello world」を出力したい場合は、次のようになります。
echo "Hello world"
スクリプトを実行可能にする
スクリプトを実行可能にするには、chmod コマンドを使用します。
chmod +x 挨拶.sh
+x は、スクリプト ファイルに実行権限を追加することを意味します。 スクリプトを実行するには、スクリプト名をその相対パスで呼び出します。
./挨拶.sh
ユーザー入力の取得
ユーザー入力を取得することは、bash スクリプトのコア機能であり、bash では変数の概念が必要です。 変数は、値を格納できるストレージのようなものです。 この場合、ユーザーの入力を bash 変数に保存します。 貢献するために、私たちはユーザーに質問をします。
echo -e "あなたの名前は?"
ユーザーが自分の名前を入力すると、inputname という bash 変数を使用して入力を読み取ることができます。
echo -e "あなたの名前は何ですか: " read inputname
任意の変数名を使用できますが、必ず echo コマンドの直後に read コマンドを追加してください。
ウェルカム メッセージを印刷する
格納されたユーザー名は入力名変数です。 ユーザーに挨拶するために、再度 echo コマンドを使用します。
echo "おはよう $inputname"
$ 記号を使用して、文字列内の変数を表します。 スクリプトを保存し、./greetings.sh コマンドで実行します。

これで、独自の挨拶を作成して、友達と共有できます。
ファイル拡張子
スクリプトのファイル拡張子に違いはありません。 「.sh」ファイル拡張子を付けてファイルに名前を付けても、プログラムの実行方法にはあまり影響しません。 ファイル拡張子のない Bash スクリプト - 空のテキスト ファイルとその間のすべてのファイルは、正しいコマンドと引数が存在する限り引き続き実行されます。
Bash シェルはファイル拡張子を無視しますが、これはスクリプト作成者がそうするべきだという意味ではありません。 シェル スクリプトを起動時に実行するように設定できる一部のデスクトップ環境では、スクリプトに依存して正しい「.sh」ファイル拡張子が付けられます。 これは整理目的にも役立ちます。
結局のところ、ほとんどのシェル スクリプトは移植性のために「.sh」ファイルとして保存されます。 「sh」は Bash 自体とは関係なく、スクリプトは互換性のある任意のシェルで実行できます。
または、スクリプトを .bash、.ksh (Unix korn シェル) などとして保存することもできます。 これらのファイル拡張子は劣っており、スクリプトの有用性を実際に制限しています。 これは、これらの拡張機能を使用するシェル専用に設計されているためです。
أسئلةمكررة
Q 1. Bash スクリプトは簡単に習得できますか?
答え。 プログラミング言語に精通している場合、bash プログラミングはかなり簡単に思えます。 変数やループなど、プログラミングと同じ概念を共有していますが、プログラミングについて何も知らない場合は、Python から始めることをお勧めします。 Python は習得が非常に簡単で、Python を使用してスクリプトを作成することもできます。
Q2. Bash は学ぶ価値がありますか?
答え。 日常的に Linux を操作したり、職場環境で Linux を使用したりする場合は、bash スクリプトを習得する必要があります。 毎日のタスクを自動化するために bash を学ぶこともできます。 それ以外には、ソフトウェア開発業界で Bash を使用する方法は見当たりません。
Q3. Windows で Bash スクリプトを学習するにはどうすればよいですか?
答え。 Windows で bash をネイティブに学習する方法はありませんが、Windows Subsystem for Linux (WSL) を使用して実行できます。 Windows マシン内の Linux ディストリビューション それを使用してbashコマンドを実行します。



