- シェルスクリプト総合 その29
562 :デフォルトの名無しさん (ワッチョイ 9164-TRt+)[sage]:2018/11/09(金) 05:22:03.56 ID:3ZHBVzZ50 - いわゆる普通のプログラミング言語(PythonやCやJavaScript)に対して,シェルスクリプトを作る上で気をつけてることってある?
例えば「局所変数や局所関数が宣言できないのでなるべく使わない」とかさ。
|
- シェルスクリプト総合 その29
573 :デフォルトの名無しさん (ワッチョイ 9164-TRt+)[sage]:2018/11/09(金) 09:40:49.31 ID:3ZHBVzZ50 - >>565
ありがとう。set -eは鬼門だね。前に棘かなにかでも纏められてた。 ところで パイプ使わないのはどうしてだ? シェルスクリプトは入出力指向なんだから積極的にパイプを活用すべきでは。
|
- シェルスクリプト総合 その29
575 :デフォルトの名無しさん (ワッチョイ 9164-30bX)[sage]:2018/11/09(金) 10:07:47.85 ID:3ZHBVzZ50 - ああ。たしかにパイプ越しに変数を参照させようと思ったらexportして環境変数にしなくちゃらんもんな。
|
- シェルスクリプト総合 その29
577 :デフォルトの名無しさん (ワッチョイ 9164-30bX)[sage]:2018/11/09(金) 17:10:16.74 ID:3ZHBVzZ50 - シェルスクリプトでそのコマンドが実行された行数を取得する方法ってあるかな。
#!/usr/bin/env bashにすれば${LINENO}変数にその位置が格納されてるので簡単なんだけど やっぱりもうすこし汎用的な方法で実現したい。
|
- C言語なら俺に聞け 149
40 :デフォルトの名無しさん (ワッチョイ 9164-30bX)[sage]:2018/11/09(金) 20:13:38.25 ID:3ZHBVzZ50 - POSIXの<errno.h>にある番号とBSDの<sysexits.h>で全然番号が違うのは理由があるのかな。
いままで<sysexits.h>に従って「許可がない」動作は77を返すものだと思ってたら Linuxでは1を返すのでなぜだと思って調べたら<errno.h>では権限エラーは1。 嫌だなぁ。
|
- シェルスクリプト総合 その29
579 :デフォルトの名無しさん (ワッチョイ 9164-30bX)[sage]:2018/11/09(金) 20:27:42.80 ID:3ZHBVzZ50 - >>578
だよね〜。ファイルの中での自分の位置を調べるのはシェルスクリプトでは無理っぽいね。 Cのassert()関数みたいなのを自作したかったんだけど 機能が落ちるのは嫌だな(もういいけど) ああ ちなみに > 関数呼び出しを行った時にソースコードの行数ではなく > 関数の頭からの行数になっていて これGNU Bashのことを言ってるのなら関数じゃなくて別名にすればO.K.だよ
|