t0mmy

2020年12月30日に参加

学習履歴詳細

Shell Script 基礎

やったこと

書籍「新しいシェルプログラミングの教科書」

  • [[]]
  • for文
  • リダイレクト

学んだこと

[[]]

test コマンドと大体同じ。
以下の違いがある。

  • && 表記を AND演算子として使用できる
  • || 表記を OR演算子として使用できる
  • ()< > 使用時にクォートが不要

など

また、 [[]] 中では単語分割されない。

str="abc def"

/*エラー*/
[ $str ... ]

/*OK*/
[[ $str ... ]]

[[]] の中では、 * をはじめとしたパス展開が使えない。
ただし、 ==!= の右辺ではパス展開される。
=~ の場合、右辺を拡張正規表現とみなす。

#!/bin/bash

str="1234-5678-9012-3456"

if [[ $str =~ [0-9]{4}* ]]; then
  echo yes
else
  echo no
fi

for文

for i in hogein hoge を省略すると、 in $@ と同じ振る舞いをする。

shell scriptにも、 until 文がある。

リダイレクト

>| で強制上書き
set -o noclobber 設定下でも、ファイルの上書きが可能になる。

ShellScript

2022年06月15日(水)

1.0時間