シェルスクリプト

シェル変数の値を置換する方法

概要 シェルスクリプトで変数の値を置換する方法のメモ 方法 #!/bin/bash tmp="hoge fuga piyo" test=${tmp//hoge/123} echo ${test} # 123 fuga piyo になる

Makefile のメモ書き

概要 Makefile のメモ書き subst でオブジェクトファイル名を生成する代わり source = hoge.cpp fuga.cpp piyo.cpp # 今まで subst でこう書いてた objects = $(subst .cpp,.o,${source}) # これでもいい objects = $(source:.cpp=.o)

シェルスクリプトにおいてバックエンドで実行したコマンドの同期を取る方法

概要 シェルスクリプトでは wait コマンドにプロセス ID を指定することで同期がとれる wait コマンドのサンプル sleep コマンドをバックグラウンドで実行させ,wait コマンドで同期をとる バックグランドで実行したコマンドのプロセス ID は $! で取得でき…

LD_LIBRARY_PATH の設定方法をあれこれ考える

概要 シェルスクリプト内で LD_LIBRARY_PATH を設定することを考える. LD_LIBRARY_PATH が設定されていない状態で,以下の方法で設定すると末尾に ":" がつくため気持ち悪い // もちろん動作には影響を与えないので,問題はないはずだが... #!/bin/bash # L…

PIPESTATUS でパイプラインの各コマンドの終了ステータスを取得する

概要 $PIPESTATUS を使うことでパイプラインの各コマンドの終了ステータスを取得できる. ただし,使用できる環境には制限がある模様. $? で終了ステータスを取得する場合の問題点 $? で終了ステータスを取得した場合は一番右のコマンドの終了ステータスを…