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

カスタムシェル関数とライブラリを作成して使用する方法

Linuxでは、シェルスクリプトは、特定のシステム管理タスクの実行や自動化、簡単なコマンドラインツールの作成など、さまざまな方法で役立ちます。

このガイドでは、新しいLinuxユーザーに、カスタムシェルスクリプトを確実に保存する場所、カスタムシェル関数とライブラリの記述方法、他のスクリプトでライブラリの関数を使用する方法を示します。

シェルスクリプトを保存する場所

フルパス/絶対パスを入力せずにスクリプトを実行するには、スクリプトを $ PATHのディレクトリの1つに保存する必要があります。 環境変数。

$ PATHを確認するには 、以下のコマンドを発行します:

$ echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

通常、ディレクトリが bin の場合 ユーザーのホームディレクトリに存在し、自動的にユーザーの $ PATHに含まれます 。ここにシェルスクリプトを保存できます。

したがって、ビンを作成します ディレクトリ( Perlも保存される場合があります 、Awkまたは Python スクリプトまたはその他のプログラム):

$ mkdir ~/bin

次に、 libというディレクトリを作成します (ライブラリの略)独自のライブラリを保持する場所。 C、Pythonなどの他の言語のライブラリをその中に保持することもできます。その下に、 shという別のディレクトリを作成します;これにより、特にシェルライブラリが保存されます:

$ mkdir -p ~/lib/sh 

独自のシェル関数とライブラリを作成する

シェル関数 スクリプトで特別なタスクを実行するコマンドのグループです。これらは、他のプログラミング言語のプロシージャ、サブルーチン、および関数と同様に機能します。

関数を作成するための構文は次のとおりです。

function_name() { list of commands }

たとえば、スクリプトに関数を記述して、日付を表示できます。 次のように:

showDATE() {date;}

日付を表示するたびに 、名前を使用して上記の関数を呼び出すだけです:

$ showDATE

シェルライブラリ は単なるシェルスクリプトですが、後で他のシェルスクリプトから呼び出すことができる関数のみを格納するライブラリを作成できます。

以下は、 libMYFUNCS.shというライブラリの例です。 私の〜/ lib / sh 関数のその他の例を含むディレクトリ:

#!/bin/bash 

#Function to clearly list directories in PATH 
showPATH() { 
        oldifs="$IFS"   #store old internal field separator
        IFS=:              #specify a new internal field separator
        for DIR in $PATH ;  do echo $DIR ;  done
        IFS="$oldifs"    #restore old internal field separator
}

#Function to show logged user
showUSERS() {
        echo -e “Below are the user logged on the system:\n”
        w
}

#Print a user’s details 
printUSERDETS() {
        oldifs="$IFS"    #store old internal field separator
        IFS=:                 #specify a new internal field separator
        read -p "Enter user name to be searched:" uname   #read username
        echo ""
       #read and store from a here string values into variables using : as  a  field delimiter
    read -r username pass uid gid comments homedir shell <<< "$(cat /etc/passwd | grep   "^$uname")"
       #print out captured values
        echo  -e "Username is            : $username\n"
        echo  -e "User's ID                 : $uid\n"
        echo  -e "User's GID              : $gid\n"
        echo  -e "User's Comments    : $comments\n"
        echo  -e "User's Home Dir     : $homedir\n"
        echo  -e "User's Shell             : $shell\n"
        IFS="$oldifs"         #store old internal field separator
}

ファイルを保存して、スクリプトを実行可能にします。

ライブラリから関数を呼び出す方法

libの関数を使用するには 、まず最初に libを含める必要があります 関数が使用されるシェルスクリプトで、次の形式で:

$ ./path/to/lib
OR
$ source /path/to/lib

したがって、関数 printUSERDETSを使用します libから〜/ lib / sh / libMYFUNCS.sh 以下に示すような別のスクリプトで。

特定のユーザーの詳細を出力するために、このスクリプトに別のコードを記述する必要はありません。既存の関数を呼び出すだけです。

test.shという名前の新しいファイルを開きます :

#!/bin/bash 

#include lib
.  ~/lib/sh/libMYFUNCS.sh

#use function from lib
printUSERDETS

#exit script
exit 0

保存してから、スクリプトを実行可能にして実行します。

$ chmod 755 test.sh
$ ./test.sh 
カスタムシェル関数とライブラリを作成して使用する方法

この記事では、シェルスクリプトを確実に保存する場所、独自のシェル関数とライブラリを作成する方法、通常のシェルスクリプトでライブラリから関数を呼び出す方法を示しました。

次に、 Vimを設定する簡単な方法を説明します IDEとして Bashスクリプト用。それまでは、常にTecMintに接続し、以下のフィードバックフォームからこのガイドについての考えを共有してください。


  1. シェルスクリプトでヒアドキュメントを使用する方法

    ヒアドキュメント( Heredoc )は、特別なコードブロックとして扱われる入力またはファイルストリームリテラルです。このコードブロックは、処理のためにコマンドに渡されます。 ヒアドキュメント UNIXに由来 シェルであり、sh、tcsh、ksh、bash、zsh、cshなどの一般的なLinuxシェルで見つけることができます。特に、Perl、Ruby、PHPなどの他のプログラミング言語もヒアドキュメントをサポートしています。 ヘルドックの構造 ヒアドキュメント 2つの山かっこを使用(<<) その後に区切り文字トークンが続きます 。同じ区切り文字トークンを使用して、コードのブロ

  2. iOS 13 で NFC タグを使用、読み書きする方法

    スマートフォンの最新バージョンでは、NFC は、ある電話から別の電話に情報を転送するのに役立つ機能です。 NFC は Near Field Communication の略です。スマートフォンとの間で情報を転送するために使用できるワイヤレス接続です。 この機能により、製品、サービス、ランドマーク、さらには人物に関する情報にすぐにアクセスできます。デバイスをワイヤレスで接続するには、一般に NFC タグと呼ばれる NFC で動作するスマート タグが必要です。 この記事では、iPhone での NFC タグ、NFC タグ ライター、および NFC リーダーの使用について説明します。 では、N