ラベル bash の投稿を表示しています。 すべての投稿を表示
ラベル bash の投稿を表示しています。 すべての投稿を表示

2018年7月29日日曜日

bashならできる変数内文字列置換

2018 Jul. 29.

${変数名/置換前文字列/置換後文字列}
  最初に一致した部分のみを置き換える。

${変数名/置換前文字列//置換後文字列}
  すべての一致部分を置き換える。

bash 文字列の末尾の削除

2018 Jul. 29.

bashでの文字列Strの末尾の削除
echo ${Str/%?/}

2018年7月8日日曜日

シェルスクリプトの位置パラメータ/コマンドライン引数の一括展開

2018 Jul. 08.

fumiyas.github.io/2016/12/15/positional-parameters.sh-advent-calendar.html

"$*"
すべての値の間にスペース ` ` が差し込まれた1つの文字列に展開される。
展開の結果は元にように個別の値にはならず、スペースが差し込まれたひと塊の一つの値になる。
ダブルクォートに括られているため、展開後にワード分割はされない。
同様にパス名展開やブレース展開なども適用されない。

"$@"
位置パラメータの数だけ展開される。
パラメーターの数は変化しない。
ワード分割や各種展開もされない。

$* と $@ は同じ
位置パラメータの各値がそれぞれ個別に展開された後、個別にワード分割やパス名展開などが適用される。



2017年1月9日月曜日

シェルスクリプトで expr "$var" + 1 で数値判定するときの注意点


2019 Apr. 14.
2017 Jan. 09

何も書かれていないサイズゼロのファイルfile.txtから
var=`tail -n 1 file.txt`
とし、
expr "$var" + 1
ret=$?
とした時、
$varを二重引用符で囲むと、戻り値retには文法エラーが入る。
$varを二重引用符で囲まないと、varの値が0と判定され、exprの計算結果は1、戻り値retは0になる。