ユーザ用ツール

サイト用ツール


linux:bashtips

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
linux:bashtips [2013/01/29 05:19]
nogajun
linux:bashtips [2013/01/29 05:52] (現在)
nogajun
行 56: 行 56:
 <code bash> <code bash>
 # 先頭の1文字を切り出す # 先頭の1文字を切り出す
-STR="abcdefg"; echo ${STR:0:1}+STR="abcdefg"; echo ${STR:0:1} 
 +a
  
 # 最後の1文字を切り出す # 最後の1文字を切り出す
-STR="abcdefg"; echo ${STR:$((${#STR}-1))} +STR="abcdefg"; echo ${STR:$((${#STR}-1))} 
-</code>+g
  
 +</code>
  
 <note> <note>
 特定の文字列の位置(offset)から、lengthを取り出す。 特定の文字列の位置(offset)から、lengthを取り出す。
- +<code bash>
-<code>+
 部分文字列展開 部分文字列展開
 ${parameter:offset:length}  ${parameter:offset:length} 
行 72: 行 73:
  
 文字列の長さを返す。 文字列の長さを返す。
- +<code bash>
-<code>+
 パラメータの長さ パラメータの長さ
 ${#parameter}  ${#parameter} 
行 79: 行 79:
  
 計算をする 計算をする
- +<code bash>
-<code>+
 算術式展開 算術式展開
 $((expression))  $((expression)) 
 </code> </code>
- 
 </note> </note>
 +
 +===== 連想配列(ハッシュ)を使う =====
 +
 +bash 4.xから連想配列(ハッシュ)が使えます。
 +
 +<code bash>
 +$ declare -A nhk
 +$ nhk[fm]="NHK-FM"; echo ${nhk[fm]} #変数はチルダで囲む
 +NHK-FM
 +</code>
 +
 +一気に代入する場合はこんな感じ。
 +
 +<code bash>
 +$ declare -A nhk
 +$ nhk=([r1]="NHK第1ラジオ" [r2]="NHK第2ラジオ" [fm]="NHK-FM"); echo ${nhk[r1]}
 +$ echo ${nhk[r2]}
 +NHK第2ラジオ
 +
 +# バリューの一覧
 +$ echo ${nhk[@]}
 +NHK第2ラジオ NHK第1ラジオ NHK-FM
 +
 +# キーの一覧
 +$ echo ${!nhk[@]}
 +r2 r1 fm
 +</code>
  
linux/bashtips.txt · 最終更新: 2013/01/29 05:52 by nogajun