【Shell】特殊パラメータの表示方法

■作成するプログラムの仕様

▼処理概要
①実行引数の個数を表示する
②コマンド終了ステータス(正常系)を表示する
③コマンド終了ステータス(異常系)を表示する
④実行時のプロセスIDを表示する

▼補足説明
処理概要②
 実在するディレクトリについて[ ls ]コマンドを実行し、コマンド終了ステータスを取得する。
処理概要③
 実在しないディレクトリについて[ ls ]コマンドを実行し、コマンド終了ステータスを取得する。

▼補足説明の概要図

■使用するコマンド

コマンド概要説明
echo文字列/変数を表示する
lsファイル/ディレクトリ情報を出力する
$#実行時の引数の数を出力
$?コマンド終了パラメータを出力
0:正常系
0以外:異常系
$$実行時のプロセスIDを出力
※実行のたびにIDは変わる

■サンプルコード

#!/bin/bash

echo "#########実行引数の数##############"

# 実行引数の個数を表示する
echo "実行引数の数:"$#

echo "#########コマンド終了ステータス(正常系)##############"

# コマンド終了ステータス(正常系:実在するディレクトリ)
ls /work
echo "コマンド終了ステータス:"$?

echo "#########コマンド終了ステータス(正常系)##############"

# コマンド終了ステータス(異常系:実在しないディレクトリ)
ls /hogehogehoge
echo "コマンド終了ステータス:"$?

echo "##########プロセスID#############"

# 実行時のプロセスIDを表示
echo "実行時のプロセスID:"$$

■実行結果

▼実行コマンド
./sample.sh a b

#########実行引数の数##############
実行引数の数:2
#########コマンド終了ステータス(正常系)##############
sample.sh
コマンド終了ステータス:0
#########コマンド終了ステータス(正常系)##############
ls: /hogehogehoge にアクセスできません: そのようなファイルやディレクトリはありません
コマンド終了ステータス:2
##########プロセスID#############
実行時のプロセスID:29090

コメント