03-Shellスクリプト学習--文字列と配列
2924 ワード
文字列
文字列はshellプログラミングで最もよく使われる最も有用なデータ型(数字や文字列以外に使いやすいタイプはありません)、文字列は単一引用符でも二重引用符でも引用符でも引用符でも引用符でも使えます.一重引用符の違いはPHPと似ています.
一重引用符の違い:二重引用符には変数があり、単一引用符はそのまま出力されます. 二重引用符にはエスケープ文字が表示され、単一引用符はそのまま出力されます. 単一引用符文字列には単一引用符は表示されません.
つづり文字列
出力:
文字列の長さの取得
切り取り文字列
出力:
文字列の検索
出力:
文字列変数には二重引用符が必要です.
*拡張:
はいれつ
bashは1次元配列(多次元配列はサポートされていません)をサポートし、配列のサイズを限定しません.C言語と同様に、配列要素の下付き文字は0から番号付けされます.配列内の要素を取得するには、下付き文字を使用します.下付き文字は整数または算術式で、0以上の値を指定します.
Shellでは配列を括弧で表し,配列要素は
例:
または
配列の個々のコンポーネントを個別に定義することもできます.
連続する下付き文字を使用しなくてもよく、下付き文字の範囲に制限はありません.
配列を読み込みます.
出力:
まとめ
shellの文字列と配列を比較すると、次のことがわかります.
文字列
配列:
文字列はshellプログラミングで最もよく使われる最も有用なデータ型(数字や文字列以外に使いやすいタイプはありません)、文字列は単一引用符でも二重引用符でも引用符でも引用符でも引用符でも使えます.一重引用符の違いはPHPと似ています.
一重引用符の違い:
つづり文字列
#!/bin/bash
str1='i'
str2='love'
str3='you'
echo $str1 $str2 $str3
echo $str1$str2$str3
echo $str1,$str2,$str3
出力:
i love you
iloveyou
i,love,you
文字列の長さの取得
#!/bin/bash/
str='i love you'
echo ${#str}
# :10
切り取り文字列
#!/bin/bash/
str='i love you'
echo ${str:1} # 1 。 0 。
echo ${str:2:2} # 2 2 。
echo ${str:0} # 。
echo ${str:-3} # , 0。
出力:
love you
lo
i love you
i love you
文字列の検索
#!/bin/bash/
str="i love you"
echo `expr index "$str" l`
echo `expr index "$str" love` # ,
echo `expr index "$str" o`
echo `expr length "$str"` #
echo `expr substr "$str" 1 6` # 1 6 。 0 。
出力:
3
3
4
10
i love
文字列変数には二重引用符が必要です.
*拡張:
expr
文字列の使用方法については、次のとおりです.STRING : REGEXP anchored pattern match of REGEXP in STRING
match STRING REGEXP same as STRING : REGEXP
substr STRING POS LENGTH # STRING POS LENGTH 。POS 1 。
index STRING CHARS # STRING CHARS , 0
length STRING #
はいれつ
bashは1次元配列(多次元配列はサポートされていません)をサポートし、配列のサイズを限定しません.C言語と同様に、配列要素の下付き文字は0から番号付けされます.配列内の要素を取得するには、下付き文字を使用します.下付き文字は整数または算術式で、0以上の値を指定します.
Shellでは配列を括弧で表し,配列要素は
符号で分割する.配列を定義する一般的な形式は、次のとおりです.array_name=(value1 value2 ... valuen)
例:
array_name=(value0 value1 value2 value3)
または
array_name=(
value0
value1
value2
value3
)
配列の個々のコンポーネントを個別に定義することもできます.
array_name[0]=value0
array_name[1]=value1
array_name[2]=value2
連続する下付き文字を使用しなくてもよく、下付き文字の範囲に制限はありません.
配列を読み込みます.
echo ${array_name[2]} # 2
echo ${array_name[*]} #
echo ${array_name[@]} #
echo ${#array_name[*]} #
echo ${#array_name[@]} #
echo ${#array_name[1]} #
出力:
value2
value0 value1 value2 value3
value0 value1 value2 value3
4
4
6
まとめ
shellの文字列と配列を比較すると、次のことがわかります.
文字列
str="hello"
${#str} #
echo ${str} #
echo ${str:1} #
配列:
arr=(a1,a2,a3)
${#str[*]} #
${#str[1]} #
echo ${str[*]} #
echo ${str[1]} #
${#ele*}
ele要素長属性を読み取る${ele*}
ele要素を読み取るまたは操作するために使用される