(for Internet Explorer)
GetUsableCommands_func  <out_FoundCommands> <CommandCandidates>
指定した候補の中から、シェルから使えるコマンドを取得します。
【引数】
out_FoundCommands
(出力) 使えるコマンドの配列
サンプル
テスト
CommandCandidates
使うコマンドの候補の羅列
  local  apps
  local  commands

  apps=( "ls"  "not-found"  "cp" )
  GetUsableCommands_func  commands  "${apps[@]}"  #//[out] commands
  Assert_func  '"${#commands[@]}" == "2"'
  Assert_func  '"${commands[0]}" == "ls "'
  Assert_func  '"${commands[1]}" == "cp "'
GetUsableApplicationsForMac_func  <out_FoundCommands> <Applications>
インストールされているアプリケーションを起動するコマンドを取得します。 Mac OS X 用。
【引数】
out_FoundCommands
Applications
(出力) インストールされているアプリの起動コマンドの配列
調べるアプリケーション名の羅列
local  apps=( "Google Chrome"  "Safari" )
GetUsableApplicationsForMac_func  cmds  "$apps[@]"
Assert_func  "${cmds[0]}" == "open -a \"Safari\" "
サンプル
参考
テスト
if IsMac_func ;then
OS が Mac かどうかを返します。
【引数】
(出力)Mac=1、Mac以外=0
g_Ret
サンプル
IsMac_func ; if [ "$g_Ret" == "1" ];then
  echo  "Mac"
else
  echo  "not Mac"
fi
テスト
Mac なら、InstallIfNot_func が使えないという表示がされます。
IsInstalled_func  <PackageSymbol> ; <Is>="$g_Ret"
パッケージがインストールされているかどうかを返します。
【引数】
PackageSymbol
Debian パッケージのシンボル名
テスト
IsInstalled_func  "lha-sjis"
echo  "$g_Ret"
サンプル
g_Ret
(出力)インストールされている=1、いない=0
apt-get が使えないとエラーになります。 Mac ではエラーになります。
AppKeyClass.enableInstall_method  <AppKey>
インストールやアンインストールを許可する。
関連
テスト
【引数】
AppKey
Main_func 関数の第2引数
サンプル
function  Main_func()
{
  local  AppKey="$2" ; AppKeyClass.enableInstall_method  "$AppKey"
}
InstallIfNot_func  <PackageSymbol>
もし、パッケージがインストールされていなければ、インストールします。
【引数】
PackageSymbol
Debian パッケージのシンボル名
テスト
function  Main_func()
{
  local  AppKey="$2" ; AppKeyClass.enableInstall_method  "$AppKey"
  Sub_func
}

function  Sub_func()
{
  sudo_func  InstallIfNot_func  "lha-sjis"
}
サンプル
apt-get が使えないとエラーになります。 Mac ではエラーになります。
を呼び出してから使えます。
Uninstall_func  <PackageSymbol>
パッケージをアンインストールします。
【引数】
PackageSymbol
Debian パッケージのシンボル名
テスト
function  Main_func()
{
  local  AppKey="$2" ; AppKeyClass.enableInstall_method  "$AppKey"
  Sub_func
}

function  Sub_func()
{
  sudo_func  Uninstall_func  "lha-sjis"
}
サンプル
apt-get が使えないとエラーになります。 Mac ではエラーになります。
を呼び出してから使えます。
その他
指定した変数名の出力変数に値を設定します。
PATH などの変数に定義されていなければ追加します。
テスト支援
指定した条件を満たさなかったときは、エラーにします。
テスト・シンボルを表示します。
Assert_func  <Condition>
指定した条件を満たさなかったときは、エラーにします。
【引数】
Condition
条件式。 ' ' で囲むこと。 if などの [ ] の中
サンプル
var1="abc"
Assert_func  '"$var1" == "def"'
<ERROR msg="Assert failed"><Expression><![CDATA[
"$var1" == "def"
]]></Expression><Result><![CDATA[
abc == def
]]></Result></ERROR>
表示例:
注意
条件式に、引数参照に相当する $1, $2, $3, … を指定すると、正しく判定できません。
補足
' ' の中に変数の参照や、関数の呼び出しがある場合、Assert_func 関数の中から
参照や呼び出しが行われます。 Assert_func 関数を呼び出している関数のローカル
変数は、Assert_func 関数の中からも参照することができるため、正常に動作します。
Assert  '"$2" == ""'
BAD
サンプル
Assert_func  '-e "$path"'
ファイルか何かがあること
EchoTestStart_func  <TestName>
テスト・シンボルを表示します。
【引数】
TestName
テスト・シンボル
サンプル
EchoTestStart_func  "${FUNCNAME[0]}"

((( Main_func )))
表示例:
その他
文字列
参考
改行文字、タブ文字
文字列が含まれていなければ、追加したものを返します。
文字列の中から指定の文字列を後ろから検索します。
数値かどうかを返します。
文字列の長さを返します。
文字列の一部を抽出します。
両端の空白、タブ、改行をカットした文字列を返します。
文字列の末尾から数文字抽出します。
文字列の末尾が指定した文字ならカットします。
指定したキーワードより左側の部分文字列を返します。
最後のキーワードより左側の部分文字列を返します。
指定したキーワードより右側の部分文字列を返します。
最後のキーワードより右側の部分文字列を返します。
文字列の中から指定の文字列を検索します。
指定した文字列を置き換えます。
指定した文字列を小文字にして返します。
指定した文字列を大文字にして返します。
grep 用にエスケープします。
sed 用にエスケープします。
変数置換用にエスケープします。
" " で囲む用にエスケープします。
" " や ' ' で囲まないエスケープをします。
複数の文字列を複数行の文字列にして返します。
$LF
$Tab
改行文字
タブ文字
var="abc${LF}def${LF}"
WS var
サンプル
AddIfNotExist_func  <WholeStr> <AddStr> <Separator> ; <NewStr>="$g_Ret"
WholeStr に AddStr が含まれていなければ、先頭に AddStr を追加したものを返します。
【引数】
WholeStr
文字列の列挙
AddStr
追加する文字列
Separator
文字列の列挙を区切る文字列
サンプル
AddIfNotExist_func  "A,B,C"  "D"  "," ; Assert_func  '"$g_Ret" == "D,A,B,C"'
AddIfNotExist_func  "A,B,C"  "A"  "," ; Assert_func  '"$g_Ret" == "A,B,C"'
(出力)新しい文字列の列挙
g_Ret
AddIfNotExist_func  "$PATH"  "$HOME/bin"  ":" ; PATH="$g_Ret"
テスト
サンプル
コンマで区切られた文字列の列挙に追加する
環境変数 PATH にパスに追加する
IsNumeric_func  <Value> ; <Is>="$g_Ret"
指定した値が数値かどうかを返します。
【引数】
Value
文字列または数値
(出力)数値=1、数値以外=0
g_Ret
サンプル
IsNumeric_func $key ; if [ "$g_Ret" == "1" ];then
  echo  "$key is number"
else
  echo  "$key is not number"
fi
テスト
StringClass.length_method  <self> ; <Length>="$g_Ret"
指定した文字列の長さを返します。
【引数】
self
文字列
(出力)文字列の長さ。 日本語の文字も1文字単位
g_Ret
サンプル
  StringClass.length_method  "ABCD" ;   Assert_func  "$g_Ret" == "4"
  StringClass.length_method  "あいう" ; Assert_func  "$g_Ret" == "3"
テスト
StringClass.substring_method  <self> <StartIndex> <EndIndex> ; <SubString>="$g_Ret"
文字列の一部を抽出します。
【引数】
self
全体の文字列
StartIndex
抽出を開始する文字の位置。先頭=0
EndIndex
抽出を終了する次の文字の位置。省略=最後まで
サンプル
local  var="ABCDE"
StringClass.substring_method "$var"  2 ;    Assert_func  "$g_Ret" = "CDE"
StringClass.substring_method "$var"  2  4 ; Assert_func  "$g_Ret" = "CD"
(出力)部分文字列
g_Ret
テスト
StringClass.trim_method  <self> ; <Str>="$g_Ret"
両端の空白、タブ、改行をカットした文字列を返します。
【引数】
self
全体の文字列
g_Ret
(出力)両端の空白、タブ、改行をカットした文字列
サンプル
local  var=" ABCDE "
StringClass.trim_method "$var" ; Assert_func  "$g_Ret" = "ABCDE"
テスト
StringClass.right_method  <String> <Length> ; <PartStr>="$g_Ret"
文字列の末尾から数文字抽出します。
【引数】
String
全体の文字列
Length
抽出する文字数
サンプル
local  var="ABCDE"
StringClass.right_method  "$var"  3 ; Assert_func  "$g_Ret" = "CDE"
(出力)部分文字列
g_Ret
テスト
StringClass.cutLastOf_method  <String> <LastStr> ; <PartStr>="$g_Ret"
文字列の末尾が指定した文字ならカットします。
【引数】
String
全体の文字列
サンプル
local  var="folder/"
StringClass.cutLastOf_method  "$var"  "/" ; Assert_func  "$g_Ret" = "folder"
末尾にあればカットする文字列
LastStr
(出力)部分文字列
g_Ret
テスト
LeftOfStr_func  <String> <Key> ; <PartStr>="$g_Ret"
指定したキーワードより左側の部分文字列を返します。
【引数】
String
全体の文字列
Key
キーワード
g_Ret
(出力)キーワードより左側の部分文字列
サンプル
LeftOfStr_func  "index.html#main"  "#" ; Assert_func  '"$g_Ret" == "index.html"'
テスト
LeftOfLastStr_func  <String> <Key> ; <PartStr>="$g_Ret"
指定したキーワードの最後のキーワードより左側の部分文字列を返します。
【引数】
String
全体の文字列
Key
キーワード
g_Ret
(出力)最後のキーワードより左側の部分文字列
サンプル
LeftOfLastStr_func  "/folder/sub/index.html"  "/" ; Assert_func  '"$g_Ret" == "/folder/sub"'
テスト
RightOfStr_func  <String> <Key> ; <PartStr>="$g_Ret"
指定したキーワードより右側の部分文字列を返します。
【引数】
String
全体の文字列
Key
キーワード
g_Ret
(出力)キーワードより右側の部分文字列
サンプル
RightOfStr_func  "folder/sub/index.html"  "/" ; Assert_func  '"$g_Ret" == "sub/index.html"'
テスト
RightOfLastStr_func  <String> <Key> ; <PartStr>="$g_Ret"
指定したキーワードの最後のキーワードより右側の部分文字列を返します。
【引数】
String
全体の文字列
Key
キーワード
g_Ret
(出力)最後のキーワードより右側の部分文字列
サンプル
RightOfLastStr_func  "/folder/sub/index.html"  "/" ; Assert_func  '"$g_Ret" == "index.html"'
テスト
StringClass.indexOf_method  <self> <Keyword> <StartIndex> ; <Index>="$g_Ret"
文字列の中から指定の文字列を検索します。
【引数】
self
全体の文字列
Keyword
検索キーワード
StartIndex
検索を開始する文字の位置。省略時=先頭
サンプル
local  var="ABCDEABCDE"
StringClass.indexOf_method  "$var"  "BC"    ; Assert_func  $g_Ret = 1
StringClass.indexOf_method  "$var"  "BC"  5 ; Assert_func  $g_Ret = 6
StringClass.indexOf_method  "$var"  "X"     ; Assert_func  $g_Ret = -1
StringClass.indexOf_method  "$var"  "X"  5  ; Assert_func  $g_Ret = -1
(出力)見つかった位置。先頭=0。見つからなかった=-1
g_Ret
テスト
StringClass.indexOf_method <self> <Keyword> <StartIndex> ; <Index>="$g_Ret"
文字列の中から指定の文字列を後ろから検索します。
【引数】
self
全体の文字列
Keyword
検索キーワード
StartIndex
検索を開始する文字の位置。省略時=末尾
サンプル
local  var="ABCDEABCDE"
StringClass.lastIndexOf_method  "$var"  "BC"    ; Assert_func  '$g_Ret == 6'
StringClass.lastIndexOf_method  "$var"  "BC"  5 ; Assert_func  '$g_Ret == 1'
StringClass.lastIndexOf_method  "$var"  "X"     ; Assert_func  '$g_Ret == -1'
StringClass.lastIndexOf_method  "$var"  "X"  5  ; Assert_func  '$g_Ret == -1'
(出力)見つかった位置。先頭=0。見つからなかった=-1
g_Ret
テスト
StringClass.replace_method  <self> <From> <To> ; <Str>="$g_Ret"
指定した文字列を置き換えます。
【引数】
self
置き換えられる文字列
置き換える前の部分文字列(正規表現ではない)
From
サンプル
StringClass.replace_method  "ABCDE"  "C"  "xx" ; Assert_func  '"$g_Ret" == "ABxxDE"'
g_Ret
(出力)置き換えた後の文字列
置き換えた後の部分文字列
To
From にマッチする部分が無かったときは、g_Ret=$self になります。
テスト