BASHプログラミング
 Computer >> コンピューター >  >> プログラミング >> BASHプログラミング

Linuxでシェルスクリプトデバッグモードを有効にする方法

スクリプトは、ファイルに保存されているコマンドのリストです。システムユーザーは、ターミナルでコマンドを1つずつ入力して一連のコマンドを実行する代わりに、すべてのコマンド(コマンド)をファイルに保存し、ファイルを繰り返し呼び出してコマンドを数回再実行できます。

スクリプトを学習しているとき、またはスクリプトを作成する初期段階では、通常、数行のコマンドを使用して小さなスクリプトまたは短いスクリプトを作成することから始めます。そして、私たちは通常、その出力を見て、意図したとおりに機能することを確認するだけで、そのようなスクリプトをデバッグします。

ただし、システム設定を変更したり、ネットワークを介して重要なバックアップを実行したりするスクリプトなど、数千行のコマンドを使用して非常に長く高度なスクリプトを書き始めると、スクリプトの出力を確認するだけでは不十分であることがわかります。スクリプト内のバグを見つけるのに十分です。

したがって、Linuxシリーズでのこのシェルスクリプトのデバッグでは、シェルスクリプトのデバッグを有効にする方法を説明し、さまざまなシェルスクリプトのデバッグモードと、後続のシリーズでそれらを使用する方法について説明します。

スクリプトの開始方法

スクリプトは、#!を含む最初の行で他のファイルと区別されます。 (シーバン –ファイルタイプ)とパス名(インタープリターへのパス)を定義します。これは、ファイルが指定されたプログラム(インタープリター)によって解釈されるコマンドのコレクションであることをシステムに通知します。

以下は、さまざまな種類のスクリプトの「最初の行」の例です。

#!/bin/sh          [For sh scripting]
#!/bin/bash        [For bash scripting] 
#!/usr/bin/perl    [For perl programming]
#!/bin/awk -f      [For awk scripting]   

注 :最初の行または#! スクリプトに標準のシステムコマンドのセットのみが含まれ、内部シェルディレクティブが含まれていない場合は、省略できます。

Linuxでシェルスクリプトを実行する方法

シェルスクリプトを呼び出すための従来の構文は次のとおりです。

$ script_name  argument1 ... argumentN

もう1つの可能な形式は、スクリプトを実行するシェルを次のように明確に指定することです。

$ shell script_name argument1 ... argumentN  

例:

$ /bin/bash script_name argument1 ... argumentN     [For bash scripting]
$ /bin/ksh script_name argument1 ... argumentN      [For ksh scripting]
$ /bin/sh script_name argument1 ... argumentN       [For sh scripting]

#!がないスクリプトの場合 最初の行として、以下のような基本的なシステムコマンドのみが含まれています:

#script containing standard system commands
cd /home/$USER
mkdir tmp
echo "tmp directory created under /home/$USER"

実行可能にして、次のように実行するだけです。

$ chmod +x  script_name
$ ./script_name 

シェルスクリプトデバッグモードを有効にする方法

以下は、主なシェルスクリプトのデバッグオプションです。

  1. -v (verboseの略)–読み取り中にスクリプト内のすべての行を表示するようにシェルに指示し、verboseモードをアクティブにします。
  2. -n (noexecまたはno ecxecutionの略)–シェルにすべてのコマンドを読み取るように指示しますが、コマンドは実行しません。このオプションは、構文チェックモードをアクティブにします。
  3. -x (xtraceまたはexecution traceの略)–実行中にすべてのコマンドとその引数を端末に表示するようにシェルに指示します。このオプションは、シェルトレースモードを有効にします。

1。シェルスクリプトの最初の行を変更する

最初のメカニズムは、シェルスクリプトの最初の行を次のように変更することです。これにより、スクリプト全体のデバッグが可能になります。

#!/bin/sh option(s)

上記のフォームでは、オプションは上記のデバッグオプションの1つまたは組み合わせにすることができます。

2。デバッグオプションを使用したシェルの呼び出し

2つ目は、次のようにデバッグオプションを使用してシェルを呼び出すことです。この方法では、スクリプト全体のデバッグもオンになります。

$ shell option(s) script_name argument1 ... argumentN

例:

$ /bin/bash option(s) script_name argument1 ... argumentN   

3。 setShellビルトインコマンドの使用

3番目の方法は、set組み込みコマンドを使用して、関数などのシェルスクリプトの特定のセクションをデバッグすることです。このメカニズムは、シェルスクリプトの任意のセグメントでデバッグをアクティブ化できるため、重要です。

setを使用してデバッグモードをオンにできます 以下の形式のコマンド。optionはデバッグオプションのいずれかです。

$ set option 

デバッグモードを有効にするには、次を使用します:

$ set -option

デバッグモードを無効にするには、次を使用します:

$ set +option

さらに、シェルスクリプトのさまざまなセグメントで複数のデバッグモードを有効にしている場合は、次のようにすべてを一度に無効にすることができます。

$ set -

今のところ、シェルスクリプトのデバッグモードを有効にすると、これで終わりです。これまで見てきたように、シェルスクリプト全体またはスクリプトの特定のセクションをデバッグできます。

このシリーズの次の2つのエピソードでは、シェルスクリプトのデバッグオプションを使用して詳細を説明する方法について説明します。 、構文チェック およびシェルトレースのデバッグ 例のあるモード。

重要なのは、このガイドについて質問することを忘れないでください。または、以下のコメントセクションからフィードバックを提供してください。それまでは、Tecmintとの接続を維持してください。


  1. USB デバッグ モードと Android で有効にする方法

    Android ユーザーが知っておかなければならないことには、そもそも驚くべき隠された機能である USB デバッグが含まれます。これは平均的なユーザーにとっては重要ではないように思えるかもしれませんが、開発者にとっては重要な部分です。先に進む前に、それについてもっと理解しましょう。 USB デバッグとは あなたがアプリ開発者であれば、高度なオプションを使用するために Android フォンの内部動作にアクセスしたいと思うことは間違いありません。デバッグモードでは、USB を使用して同じことができます。さらに、Android Software Developer Kit (SDK) を搭載した

  2. Windows 11 で休止状態モードを有効にする方法

    休止状態モードは、バッテリーを節約し、システムの現在の電力消費を効率的に管理するという点で便利な機能です。 Windows で休止状態モードを有効にすると、マシンはすべてのバックグラウンド アクティビティや進行中のアクティビティを一時停止し、中断したところから作業を再開できるようにします。休止状態が始まると、システムはすべてのアプリ、ドキュメント、ファイル、その他すべてを RAM に保存するのではなく、ハード ドライブに保存します。 Windows 11 の [スタート] メニューに休止状態オプションが表示されませんか? Windows 11 で休止状態モードを有効にする方法を知りたいで