はじめに
変に考えてしまって思いのほか上手くいかなかったのでメモとして残しておきます。
あとすっごい単純にこれだけ!みたいな記事が欲しくてという感じです
メモ
aaa:
@echo 'はじめ'
@for i in {1..3}; \
do sleep 1; echo $$i; \
if [ $$i -eq 2 ]; then \
echo 'a'; \
else \
echo 'b'; \
fi; \
done
@echo 'おわり'
上記打った後の出力(打ったところから)
$ make aaa <= 打ったとこ
はじめ
1
b
2
a
3
b
おわり
ここだった、、
余白ないと上手くいかないんですね、、
○[ $$i -eq 3 ]
×[$$i -eq 3]
さいごに
Makefileにアレルギーなく挑めるようになれたらなと思いました!
Makefileって色々出来ていいですよね(◍•ᴗ•◍)
おまけ
最終的に以下のようなもの作りたかった感じです。(意味なかったですが、、) ※ちなみに『app99』はコンテナ名
db_check:
@echo '次の処理始める前に何回か確認します。確認作業は最高30回ほどおこないます。'
@for i in {1..30}; \
do sleep 1; \
app99_status=`docker inspect --format='{{.State.Status}}' app99`; \
if [ $$app99_status == 'running' ]; then \
echo 'DBサーバー動いていること確認出来ましたので抜けます。'$$i'/30 回目'; \
break; \
else \
echo 'DBサーバー動いていること確認出来ませんでした。'$$i'/30 回目'; \
fi; \
done
@echo 'おわり'
で以下もダメで(動作はしますが意味なかった処理)
db_check:
@echo '次の処理始める前に何回か確認します。確認作業は最高30かいほどおこないます。'
@for i in {1..30}; \
do sleep 1; \
mysql99_socket=`docker exec -i -t mysql99 bash -c 'mysql_config --socket' | grep sock | cut -c 1-20`; \
if [ $$mysql99_socket == '/var/lib/mysql/mysql' ]; then \
echo 'DBサーバー動いていること確認出来ましたので抜けます。'$$i'/30 回目'; \
break; \
else \
echo 'DBサーバー動いていること確認出来ませんでした。'$$i'/30 回目'; \
fi; \
done
@echo 'おわり'
最終的に以下に落ち着きました!
db_check:
@echo '次の処理始める前に何回か確認します。確認作業は最高30かいほどおこないます。'
@for i in {1..30}; \
do sleep 1; \
mysql99_sock=`docker exec -i -t mysql99 bash -c 'ls /var/run/mysqld/mysqld.sock' | grep sock | cut -c 1-22 | sed 's/ //g'`; \
if [ $$mysql99_sock == '/var/run/mysqld/mysqld' ]; then \
echo '確認出来ましたので抜けます。'$$i'/30 回目'; \
break; \
else \
echo '確認出来ませんでした。'$$i'/30 回目'; \
fi; \
done
@echo 'おわり'