shellスクリプトコマンド(2)
4628 ワード
二十、printf
使い方:printfは「二重引用符」を出力する内容で、
%s:プレースホルダは厳密には出力文字列タイプです.
%f:もプレースホルダです.小数型値でなければなりません.
%d:プレースホルダでもあり、整数タイプ値である必要があります.
%c:プレースホルダでもあり、1文字のみ印刷されます.文字タイプ値のプレースホルダでなければなりません.
:エスケープ文字
同じ値が複数の変数を出力する場合
%.3 f:小数点以下3桁保持
%6.3 f:データ全体の幅が6文字であることを示します(小数点でも計算します)不足している場合は、左にスペースで補完します.
%m.nf m
m>n+1+整数が実際に占める個数であれば、mは の効果を有する.このフォーマットは右揃えで です.
%-m.nf:左揃え
%md、%ms、%mc
二十一、read
使用法:キーボードから値を読み込みread後の変数に割り当てる
注意:readはできるだけ同時に複数の値を入力しないでください.例えば、
二十二、演算演算子:+-*/% 注意点 exprは整数型を計算するデータ である.演算子の左右にスペースが必要です ``および$()は、いずれも結果セット を取得します.注意乗算*はエスケープを通過しなければなりません.そうしないと エラーが発生します.``および$()は、整数演算の結果セットだけでなく、shellコマンドの結果セット、例えば、 を取得することもできる.ケース:
整数演算は、$(()など)で行うことができる.
二十三、letキーワードで使用する演算子 接頭辞++は、まず自己+1であり、 の値を付与する.接頭辞--まず自己-1であり、 を割り当てる.接尾辞++は先に付与され、さらに自身+1 接尾辞--まず付与され、それから自身-1
注意点:++はletキーワードでのみ使用でき、結果セットでは使用できません.
+=
二十四、演算子
<<= >= != == -gt -ge -lt -le -eq -ne!
リレーショナル演算では、演算の結果は論理値です.リレーショナル式が成立する場合、論理値は1、そうでない場合は論理値は0
,=いずれもでエスケープしなければならない
!=を使ってエスケープしてもいいし、エスケープしなくてもいいです.
=,=,=,=,=(コンパイラによって決定される)
文字列演算子=:文字列が等しいかどうかを判断する !=:文字列が等しくないかどうかを判断する -z:zeroは、文字列が空(文字なし)であるか、存在しないか(定義されていない変数)であるか、またはいずれもスペース であるかを判断する.ケース:
ファイル演算子-d:ディレクトリファイル であるか否かを判定する-f:通常文書であるか否かを判断する を示す.-r:可読ファイルであるか否かを判断する を示す.-w:書き込み可能ファイルであるか否かを判断する を示す.-x:実行可能ファイルであるか否かを判断する を示す.-e:exist、 ファイルが存在するか否かを判断するケース
二十五、条件文 -gt :> -ge :>= -lt :< -le :<= -eq :== -ne :!=
アルファベット意味g:greater
than
equal
if文の要約: elseはなくてもいいです.もしあったら一番後ろに置かなければなりません.elseの下にthen はありません. elifはなくてもよく、if elseの真ん中の任意の位置に置かなければならない if文は1つのブランチ しか実行できません. ifの終了フラグはfi です
二十六、case文
注意点:終了フラグはesac でなければなりません.値1)と値2)は同じ でもよい.値1)と値2)の条件が満たされている場合*) に来る.*)書かなくてもいいですが、書くなら最後の に書いてください.各ブランチが終了した後に1つあります.
二十七、配列配列初期化: 1変数1変数初期化
注意:変数を初期化し、値を間隔を置いて割り当てることも、0から開始しないこともできます.たとえば、次のようにします.全体付与 arr=(1 2 3 4 hello) 配列要素アクセス ${配列名[下付き]} 配列内のすべての要素を巡る ${配列名[*]} ${配列名[@]}
二十八、whileサイクル
二十九、パラメータ
$0:は、実行するファイルを表します./.sh
$1:実行の最初のパラメータを表します.
$2:実行された2番目のパラメータを表します.
·····
$n:実行されたn番目のパラメータを表します.
$#:実行されるパラメータの合計数を表します.コマンド自体は含まれません.パラメータが1 であるか否かを判断する.ファイルが存在するか否かを判断する .が存在する場合、ファイルが通常のファイルであるか否かを判断する .権限変更 運転 このコマンドをグローバルに有効にする
value="hello"
printf "value=%s
" "${value}"
使い方:printfは「二重引用符」を出力する内容で、
%s:プレースホルダは厳密には出力文字列タイプです.
%f:もプレースホルダです.小数型値でなければなりません.
%d:プレースホルダでもあり、整数タイプ値である必要があります.
%c:プレースホルダでもあり、1文字のみ印刷されます.文字タイプ値のプレースホルダでなければなりません.
:エスケープ文字
同じ値が複数の変数を出力する場合
value="hello"
value1=9
printf "value=%s
value1=%s
" "${value}" "${value1}"
%.3 f:小数点以下3桁保持
%6.3 f:データ全体の幅が6文字であることを示します(小数点でも計算します)不足している場合は、左にスペースで補完します.
%m.nf
%-m.nf:左揃え
%md、%ms、%mc
二十一、read
printf " :"
read value
printf " =%s
" "${value}"
使用法:キーボードから値を読み込みread後の変数に割り当てる
注意:readはできるだけ同時に複数の値を入力しないでください.例えば、
read value value1
二十二、演算
result=`ls`
num1=1
num2=2
num3=`expr $num1 \* $num2`
echo "${num3}"
整数演算は、$(()など)で行うことができる.
num1=1
num2=3
num3=$((num1+num2))
echo "${num3}"
二十三、letキーワード
num1=1
num2=3
let num3=num1 + num2
echo "${num3}"
+ - * / % ++ -- += -= *= /=
注意点:++はletキーワードでのみ使用でき、結果セットでは使用できません.
+=
num1 += num2 #num1=num1+num2
二十四、演算子
<<= >= != == -gt -ge -lt -le -eq -ne!
num1=1
num2=2
num3=`expr $num1 \> $num2`
echo "${num3}"
リレーショナル演算では、演算の結果は論理値です.リレーショナル式が成立する場合、論理値は1、そうでない場合は論理値は0
,=いずれもでエスケープしなければならない
!=を使ってエスケープしてもいいし、エスケープしなくてもいいです.
=,=,=,=,=(コンパイラによって決定される)
文字列演算子
string1="hello"
striing2="hello"
if [ $string1 = $string2 ]
then
echo "equal"
else
echo "not equal"
fi
ファイル演算子
file="11"
if [ -d 11 ]
then
echo " "
else
echo " "
fi
二十五、条件文
if[]
#
# -gt
then
fi
if[]
#
# -gt
then
elif []
then
2
fi
if[]
#
# -gt
then
elif []
then
2
else
3
fi
アルファベット意味g:greater
than
equal
if文の要約:
二十六、case文
case in
1)
;;
2)
;;
esac
注意点:
二十七、配列
arr[0]=8
arr[1]=9
注意:変数を初期化し、値を間隔を置いて割り当てることも、0から開始しないこともできます.たとえば、次のようにします.
arr[1]=7
arr[5]=9
二十八、whileサイクル
while []
do
done
sum=0
i=0
while [ i -le 100 ]
do
let sum=sum+i
let i++
done
echo "sum=${sum}"
二十九、パラメータ
$0:は、実行するファイルを表します./.sh
$1:実行の最初のパラメータを表します.
$2:実行された2番目のパラメータを表します.
·····
$n:実行されたn番目のパラメータを表します.
$#:実行されるパラメータの合計数を表します.コマンド自体は含まれません.