トップページ > プログラム > 2018年11月09日 > 3ZHBVzZ50

書き込み順位&時間帯一覧

12 位/214 ID中時間01234567891011121314151617181920212223Total
書き込み数0000010001100000010020006



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん (ワッチョイ 9164-TRt+)
デフォルトの名無しさん (ワッチョイ 9164-30bX)
シェルスクリプト総合 その29
C言語なら俺に聞け 149

書き込みレス一覧

シェルスクリプト総合 その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.だよ


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。