if [ -n "`echo "$1" | awk '/^((hoge)|(hoge[0-9][0-9]))$/'`" ]
解読。
下書きに残っていたので投稿。
いつも使っているシェルスクリプトがある。 こんなスクリプトがあった。
if [ -n "`echo "$1" | awk '/^((hoge)|(hoge[0-9][0-9]))$/'`" ]
-n test -n string string の文字列長が 0 より大ならば真となる。
つまり
[astel@MacBook-Pro 15:06:47 ] $ cat test.sh #!/bin/sh HOGE=test if [ -n "$HOGE" ]; then echo "no" fi [astel@MacBook-Pro 15:06:50 ] $ sh test.sh no
-n のオプションの意味は値が入っていれば真となる。 ということっぽい
`echo "$1" | awk '/^((hoge)|(hoge[0-9][0-9]))$/'`
(バッククオート)で囲んでいるのでコマンド?として打った値を使うという意味(だと思っている
例えばdate とかdate=
date`とかやると日付の値がでるのでそんな意味であってる(はず
echo
文字を出すコマンド 大抵1行とか簡単な時しか使わない
"$1"
引数の一つ目
$ hogehoge.sh test
とコマンドを打つとtestが$1に入る
|
別のコマンドを足して使う感じ
説明難しい 表示した中からpiyoの値をとったりするとき cat hoge.txt | grep piyo とかで使う。
文字を切り出したりする 便利
'/^((hoge)|(hoge[0-9][0-9]))$/'
/
^
最初の文字を指定している
(hoge[0-9][0-9])
[0-9]は0~9の値の何かを示す それが二つあるので00~99までの値が入っていれば真
$
行の末尾は $ で表します。
結論
if [ -n "`echo "$1" | awk '/^((hoge)|(hoge[0-9][0-9]))$/'`" ]
引数の一つ目に、hogeかhoge00~99のうちどれかの数字が入ってる時は真を返すスクリプトである。
見直してみると全然複雑ではないスクリプトでしたね。