シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
前スレ:
シェルスクリプト総合 その28
http://mevius.5ch.net/test/read.cgi/tech/1532397676/
シェルスクリプト総合 その29
レス数が1000を超えています。これ以上書き込みはできません。
2018/09/21(金) 23:34:47.98ID:/eJt2TVD
920デフォルトの名無しさん
2019/07/01(月) 07:54:28.17ID:2smzn43h921デフォルトの名無しさん
2019/07/01(月) 09:00:56.52ID:TlV+Kbgz >>919
お前言ってることめちゃくちゃだな
コマンドによってオプションの形式が違ってるって話を
お前はしていただろ
別のシステムに持っていったって、あるコマンドの
オプションの形式は同じなんだから正常に動くだろ
お前言ってることめちゃくちゃだな
コマンドによってオプションの形式が違ってるって話を
お前はしていただろ
別のシステムに持っていったって、あるコマンドの
オプションの形式は同じなんだから正常に動くだろ
922デフォルトの名無しさん
2019/07/01(月) 11:01:27.11ID:AbRjjU8q date コマンドの オプション、
GNU版 と他の (BSD系 Mac とか) で全然違ってて戸惑った事がある
GNU版 と他の (BSD系 Mac とか) で全然違ってて戸惑った事がある
923デフォルトの名無しさん
2019/07/01(月) 11:29:32.06ID:4+biahsm POSIXは実装ありきの後出し規格なんだよ
カバーしきれない部分がたくさんある
917の挙げてる中で wget tar はPOSIXコマンドじゃない
特にネットワーク系コマンドはほとんど規格化されていない
POSIXから外れた部分の可搬性を高めるにはどうする?
例えばネットから何か落とそうと思ったら wgetかcurl使うじゃん
でも全てのシステムに必ず入ってるわけじゃない
無いならインストールしてくださいってなるわな
バージョン上がると独自拡張されたり仕様変わったりで対応いるだろ
POSIXみたいに下位互換性も保証されない
可搬性ってやつはどうなるんだ?
カバーしきれない部分がたくさんある
917の挙げてる中で wget tar はPOSIXコマンドじゃない
特にネットワーク系コマンドはほとんど規格化されていない
POSIXから外れた部分の可搬性を高めるにはどうする?
例えばネットから何か落とそうと思ったら wgetかcurl使うじゃん
でも全てのシステムに必ず入ってるわけじゃない
無いならインストールしてくださいってなるわな
バージョン上がると独自拡張されたり仕様変わったりで対応いるだろ
POSIXみたいに下位互換性も保証されない
可搬性ってやつはどうなるんだ?
924デフォルトの名無しさん
2019/07/01(月) 12:13:07.49ID:ywGyCn2/925デフォルトの名無しさん
2019/07/01(月) 12:31:44.39ID:4+biahsm926デフォルトの名無しさん
2019/07/01(月) 12:34:28.70ID:ywGyCn2/927デフォルトの名無しさん
2019/07/01(月) 12:47:29.70ID:RLVJ6D4b >>926
説明できない奴に限ってこういうこと言い出すんだよな
適当に書きましたごめんなさいってなんで言えないんだろう
宮迫だって金もらってましたごめんなさいって最初に言ってれば
秋には復帰できてたろうになあ(まあ復帰しなくても構いませんが)
説明できない奴に限ってこういうこと言い出すんだよな
適当に書きましたごめんなさいってなんで言えないんだろう
宮迫だって金もらってましたごめんなさいって最初に言ってれば
秋には復帰できてたろうになあ(まあ復帰しなくても構いませんが)
928デフォルトの名無しさん
2019/07/01(月) 14:20:27.36ID:TT0ZFmIC Macの(BSD版)sed での上書き保存 - Qiita
https://qiita.com/catfist/items/1156ae0c7875f61417ee
BSD sed のラベルの後ろではコマンド区切りのセミコロンが使えない - Qiita
https://qiita.com/akanehara/items/c9e2e3267746f51577a1
優等生なはずのBSDの方が不便に思えるけど
https://qiita.com/catfist/items/1156ae0c7875f61417ee
BSD sed のラベルの後ろではコマンド区切りのセミコロンが使えない - Qiita
https://qiita.com/akanehara/items/c9e2e3267746f51577a1
優等生なはずのBSDの方が不便に思えるけど
929デフォルトの名無しさん
2019/07/01(月) 16:02:21.59ID:0UaOtlQU 優等生ってなにをもってなのかわからんが、BSDのコマンドよりもGNUの方があれやこれやオプションが充実してたりする。POSIXの方がもっと不便だぞw
開発者の数が全然違うんだろうからしょうがないんだろう
開発者の数が全然違うんだろうからしょうがないんだろう
930デフォルトの名無しさん
2019/07/01(月) 16:09:57.86ID:0UaOtlQU >>926
言語の可搬性ではなくて、やりたいことを書いたプログラム(シェルスクリプト)の可搬性を言っているんだろ
比喩にはなってないだろう。C++で書いたDirectXを使ったソースの可搬性なんてないと自分でも言っているんだから
言語の可搬性ではなくて、やりたいことを書いたプログラム(シェルスクリプト)の可搬性を言っているんだろ
比喩にはなってないだろう。C++で書いたDirectXを使ったソースの可搬性なんてないと自分でも言っているんだから
931デフォルトの名無しさん
2019/07/01(月) 16:50:15.40ID:2smzn43h そりゃsedの「GNU拡張」をBSDで使えば可搬性はなくなるだろうけど
「拡張」って言葉の意味わかってる?
双方ともPOSIX sedには最低限準拠してるから、
POSIX sedの仕様だけを守ってればどっちの環境でも動く。
「拡張」って言葉の意味わかってる?
双方ともPOSIX sedには最低限準拠してるから、
POSIX sedの仕様だけを守ってればどっちの環境でも動く。
932デフォルトの名無しさん
2019/07/01(月) 16:56:06.15ID:0UaOtlQU たぶん、ID:TT0ZFmIC はそういうレベルの話ではない
そもそも>>928は可搬性の話ではないだろう。POSIXにするとなお不便になるからな。可搬性の話なら最後の言葉は出ないだろう
そもそも>>928は可搬性の話ではないだろう。POSIXにするとなお不便になるからな。可搬性の話なら最後の言葉は出ないだろう
933デフォルトの名無しさん
2019/07/01(月) 18:51:49.95ID:4+biahsm 可搬性高いシェルスクリプト書くならPOSIXで書く
これは間違っていない
でもPOSIXで何でも書けるわけじゃない
環境依存しないと書けない部分がある
POSIXは不完全な規格だってことだ
俺はPOSIX推進派だけどなw
これは間違っていない
でもPOSIXで何でも書けるわけじゃない
環境依存しないと書けない部分がある
POSIXは不完全な規格だってことだ
俺はPOSIX推進派だけどなw
934デフォルトの名無しさん
2019/07/01(月) 19:18:29.65ID:MoEwNeEz まとめるとどこでも動くシェルスクリプトなんて都市伝説ってことだよね
935デフォルトの名無しさん
2019/07/01(月) 19:21:40.57ID:0UaOtlQU そもそも可搬性可搬性って、そんなあれやこれやの環境を管理していんのかいっていう
シェルスクリプトで書けるものなんて全然たいしたことは書けないので、環境がしょうがなく変わったらそれに対して書き換えればいいだろうとしか思わんな
シェルクスリプトは単に補助的にしか使わない、本業は別の言語(IDE、最低限でもmakeが必要な)な俺は、可搬性可搬性って???だなw
シェルスクリプトで書けるものなんて全然たいしたことは書けないので、環境がしょうがなく変わったらそれに対して書き換えればいいだろうとしか思わんな
シェルクスリプトは単に補助的にしか使わない、本業は別の言語(IDE、最低限でもmakeが必要な)な俺は、可搬性可搬性って???だなw
936デフォルトの名無しさん
2019/07/01(月) 19:22:31.61ID:0UaOtlQU937デフォルトの名無しさん
2019/07/01(月) 19:41:01.62ID:ywGyCn2/ まとめるとどこでも動くC言語なんて都市伝説ってことだよね
C言語でゲームできないもん
C言語でゲームできないもん
938デフォルトの名無しさん
2019/07/01(月) 19:42:42.21ID:0UaOtlQU イミフすぎwどうした?
939デフォルトの名無しさん
2019/07/01(月) 20:52:04.97ID:2smzn43h まあ要するに、POSIXに準拠しとけばかなり可搬性の高いシェルスクリプトが書ける。
でもどんな言語でもそうであるように「完璧で」「完全な」可搬性は実現できない。
しかしまあ俺個人としてはシェルスクリプトは可搬性を高めやすい言語だと思うけどね。
ちゃんと実装から独立した文書としての規格があるし。
でもどんな言語でもそうであるように「完璧で」「完全な」可搬性は実現できない。
しかしまあ俺個人としてはシェルスクリプトは可搬性を高めやすい言語だと思うけどね。
ちゃんと実装から独立した文書としての規格があるし。
940デフォルトの名無しさん
2019/07/01(月) 20:55:17.40ID:2smzn43h941デフォルトの名無しさん
2019/07/01(月) 21:09:18.21ID:0UaOtlQU >>939
あと、不完全なPOSIX規格でも、それがあればこそなにかあってもポーティングがどちからという楽すぎってのも
あと、不完全なPOSIX規格でも、それがあればこそなにかあってもポーティングがどちからという楽すぎってのも
942デフォルトの名無しさん
2019/07/01(月) 21:29:02.92ID:2smzn43h 次スレ立てるときワッチョイを有効にしたいんだけど
どうすればいいんだっけ。
どうすればいいんだっけ。
943デフォルトの名無しさん
2019/07/01(月) 21:31:41.60ID:0UaOtlQU いや、いらないw
944デフォルトの名無しさん
2019/07/01(月) 21:39:48.33ID:ywGyCn2/ >>938
だからシェルスクリプトで、外部コマンドが違っていて動かないというのなら、
C言語で、APIが違っていて動かないよね
でも言語(シェルスクリプト or C言語)は可搬性が有るよね
言語以外の部分が異なっていたとしても。
ってことだけど?
だからシェルスクリプトで、外部コマンドが違っていて動かないというのなら、
C言語で、APIが違っていて動かないよね
でも言語(シェルスクリプト or C言語)は可搬性が有るよね
言語以外の部分が異なっていたとしても。
ってことだけど?
945デフォルトの名無しさん
2019/07/01(月) 21:51:05.99ID:0UaOtlQU946デフォルトの名無しさん
2019/07/01(月) 21:54:31.40ID:0UaOtlQU947デフォルトの名無しさん
2019/07/01(月) 22:28:22.64ID:KK3BgYtY >>944
可搬性があるんじゃなくてコンパイルが通るだけ or プリプロセッサまでが通るだけ。
同じシステムコールでも SysV と BSD で動作が違うとかあって、コンパイル通るだけで碌に動かないものも出る。
C で可搬性を求めるなら automake 使ってどこが不都合かを確認しまくるしかない。
それも不完全なので最後は地道なデバッグ。
可搬性があるんじゃなくてコンパイルが通るだけ or プリプロセッサまでが通るだけ。
同じシステムコールでも SysV と BSD で動作が違うとかあって、コンパイル通るだけで碌に動かないものも出る。
C で可搬性を求めるなら automake 使ってどこが不都合かを確認しまくるしかない。
それも不完全なので最後は地道なデバッグ。
948デフォルトの名無しさん
2019/07/01(月) 22:46:24.38ID:ywGyCn2/949デフォルトの名無しさん
2019/07/01(月) 22:52:54.73ID:0UaOtlQU950デフォルトの名無しさん
2019/07/01(月) 22:53:24.20ID:0UaOtlQU また間違っちゃった。>>934にはナニかあるのかw
951デフォルトの名無しさん
2019/07/01(月) 22:54:29.90ID:ywGyCn2/952デフォルトの名無しさん
2019/07/01(月) 22:55:29.41ID:0UaOtlQU って、言ってるじゃんww
その直後にイミフのレスしてたんじゃん。なんなの?ww
その直後にイミフのレスしてたんじゃん。なんなの?ww
953デフォルトの名無しさん
2019/07/01(月) 22:59:32.21ID:2smzn43h なんで0か1かにそんなに拘るのか。
「シェルスクリプトでは可搬性のあるものは書けない」
という(間違った)認識に対して
「シェルスクリプトには可搬性を持たせられる」
と是正しただけなのにね。
そして可搬性の問題はシェルスクリプトに限らない。
どんな言語にも完全な可搬性はないし、かといって全く可搬性がない訳でもない。
それだけの話をどうしてこうも荒立てられるかね……。
「シェルスクリプトでは可搬性のあるものは書けない」
という(間違った)認識に対して
「シェルスクリプトには可搬性を持たせられる」
と是正しただけなのにね。
そして可搬性の問題はシェルスクリプトに限らない。
どんな言語にも完全な可搬性はないし、かといって全く可搬性がない訳でもない。
それだけの話をどうしてこうも荒立てられるかね……。
954デフォルトの名無しさん
2019/07/01(月) 23:02:42.75ID:ywGyCn2/ まとめるとどこでも動くシェルスクリプトは都市伝説じゃなくて作れるってことだよね
955デフォルトの名無しさん
2019/07/01(月) 23:03:30.59ID:0UaOtlQU ですw
956デフォルトの名無しさん
2019/07/01(月) 23:08:07.17ID:0UaOtlQU957デフォルトの名無しさん
2019/07/01(月) 23:20:50.03ID:/rKj5XUf958デフォルトの名無しさん
2019/07/01(月) 23:37:03.32ID:4+biahsm おまえらまとめるの好きだよなw
959デフォルトの名無しさん
2019/07/01(月) 23:41:59.98ID:KK3BgYtY POSIX (というか BSD の /bin/sh である dash?) に合わせたほうが幸せなのか
#!/bin/bash って書いて bash 限定にしたほうが幸せなのか。
個人的には後者でサクッと短時間でかつ可読性高く仕上げるのが好み。
#!/bin/bash って書いて bash 限定にしたほうが幸せなのか。
個人的には後者でサクッと短時間でかつ可読性高く仕上げるのが好み。
960デフォルトの名無しさん
2019/07/01(月) 23:44:17.54ID:GotlxjDf > というか BSD の /bin/sh である dash?
dashのdはdebian linuxのdな
> 個人的には後者でサクッと短時間でかつ可読性高く仕上げるのが好み。
それはPOSIX(dash)でもbashでも変わらん
dashのdはdebian linuxのdな
> 個人的には後者でサクッと短時間でかつ可読性高く仕上げるのが好み。
それはPOSIX(dash)でもbashでも変わらん
961デフォルトの名無しさん
2019/07/02(火) 00:01:10.80ID:p7jTc1Zw 可搬性云々は要件次第なんだよ
動作保証は Ubuntuのみで良いなら環境依存で書けばいい
動作保証は Ubuntuのみで良いなら環境依存で書けばいい
962デフォルトの名無しさん
2019/07/02(火) 00:02:35.22ID:Tm8GOmHy >>960
> dashのdはdebian linuxのdな
これは勉強不足で失礼いたしました。
>それはPOSIX(dash)でもbashでも変わらん
POSIX(dash) で [[ =~ ]] って簡潔に書ける?
for ((i=0;16>i;i++)) ; do (loop内で $i 更新あり) とかは?
> dashのdはdebian linuxのdな
これは勉強不足で失礼いたしました。
>それはPOSIX(dash)でもbashでも変わらん
POSIX(dash) で [[ =~ ]] って簡潔に書ける?
for ((i=0;16>i;i++)) ; do (loop内で $i 更新あり) とかは?
963デフォルトの名無しさん
2019/07/02(火) 00:06:02.50ID:+q6wCm94 GNU拡張はGNUの方言だけどBSDにも方言くらいあるでしょ
BSDだけで盛られたコマンドってないの
BSDだけで盛られたコマンドってないの
964デフォルトの名無しさん
2019/07/02(火) 00:15:08.55ID:Atdu9zIi >>962
> POSIX(dash) で [[ =~ ]] って簡潔に書ける?
多くはcaseで十分。足りなければexprを使えばいい。
> for ((i=0;16>i;i++)) ; do (loop内で $i 更新あり) とかは?
seqかwhileを使えばいい
> POSIX(dash) で [[ =~ ]] って簡潔に書ける?
多くはcaseで十分。足りなければexprを使えばいい。
> for ((i=0;16>i;i++)) ; do (loop内で $i 更新あり) とかは?
seqかwhileを使えばいい
965デフォルトの名無しさん
2019/07/02(火) 00:31:10.69ID:rBxHnYzF >>964
exprってPOSIXだも正規表現処理できるのか。
exprってPOSIXだも正規表現処理できるのか。
966デフォルトの名無しさん
2019/07/02(火) 00:34:13.92ID:uO4UDEG+ 簡潔にって書いてあるだろうに
967デフォルトの名無しさん
2019/07/02(火) 00:37:15.66ID:Tm8GOmHy968デフォルトの名無しさん
2019/07/02(火) 01:41:05.60ID:Atdu9zIi969デフォルトの名無しさん
2019/07/02(火) 01:43:35.24ID:Atdu9zIi >>965
https://pubs.opengroup.org/onlinepubs/009695399/utilities/expr.html
> The ':' matching operator shall compare the string resulting from the evaluation of expr1 with
> the regular expression pattern
https://pubs.opengroup.org/onlinepubs/009695399/utilities/expr.html
> The ':' matching operator shall compare the string resulting from the evaluation of expr1 with
> the regular expression pattern
970デフォルトの名無しさん
2019/07/02(火) 01:44:27.35ID:uO4UDEG+ 好みって言っているのに。それはあなたの好み
好みに合うようななにかを提示するかスルーすればいいだろうに
好みに合うようななにかを提示するかスルーすればいいだろうに
971デフォルトの名無しさん
2019/07/02(火) 03:09:33.83ID:rBxHnYzF >>962
[[ "$VAR" =~ '<regexp>' ]]
↓
expr "$VAR" : '<regexp>'
for ((i=0;16>i;i++)) ; do
echo $i
done
↓
i=0; while [ $i -lt 16 ]; do
echo $i
i=$((i+1)); done
こんなもんでいかがでしょ。
簡潔かつ高い可搬性を持ったシェルスクリプトになったと思う。
よければこれから書く可搬性の高いシェルスクリプトの参考にしてみて!
[[ "$VAR" =~ '<regexp>' ]]
↓
expr "$VAR" : '<regexp>'
for ((i=0;16>i;i++)) ; do
echo $i
done
↓
i=0; while [ $i -lt 16 ]; do
echo $i
i=$((i+1)); done
こんなもんでいかがでしょ。
簡潔かつ高い可搬性を持ったシェルスクリプトになったと思う。
よければこれから書く可搬性の高いシェルスクリプトの参考にしてみて!
972デフォルトの名無しさん
2019/07/02(火) 03:45:23.93ID:uO4UDEG+ まさか、その変えた方が簡潔かつ高い可搬性を持ったという??
なんのためのbash(などの)の拡張なんだかだよ。俺には理解できない。まあ、ID:Tm8GOmHyが理解できたら特にだけど
なんのためのbash(などの)の拡張なんだかだよ。俺には理解できない。まあ、ID:Tm8GOmHyが理解できたら特にだけど
973デフォルトの名無しさん
2019/07/02(火) 03:49:34.72ID:uO4UDEG+ ところで、while内での変数の変更とかどうしてんの?そんなにPOSIXに拘る人は
974デフォルトの名無しさん
2019/07/02(火) 03:52:13.98ID:uO4UDEG+ ああ、パイプでサブシェルになってしまう場合のwhileね。よく使うパターンの
975デフォルトの名無しさん
2019/07/02(火) 03:55:40.28ID:Atdu9zIi たったこれだけの違いで大騒ぎ(笑)
976デフォルトの名無しさん
2019/07/02(火) 03:58:00.36ID:uO4UDEG+ お前がいうなw
977デフォルトの名無しさん
2019/07/02(火) 04:01:44.98ID:Atdu9zIi >>974
今後の人生、サブシェルの中に移住すればいいだけだろ
cat dummy.txt | {
i=0
while IFS= read -r line; do
i=$((i+1))
done
echo "$i"
}
今後の人生、サブシェルの中に移住すればいいだけだろ
cat dummy.txt | {
i=0
while IFS= read -r line; do
i=$((i+1))
done
echo "$i"
}
978デフォルトの名無しさん
2019/07/02(火) 04:05:15.58ID:uO4UDEG+ そのcatレベルで必要なんじゃね、普通は
そんな狭いパターンが主なのか?お前の人生は。俺の人生でそのパターンは少なさそう
そういうんじゃないよ普遍的wなのでだよ
そんな狭いパターンが主なのか?お前の人生は。俺の人生でそのパターンは少なさそう
そういうんじゃないよ普遍的wなのでだよ
979デフォルトの名無しさん
2019/07/02(火) 04:05:54.52ID:Atdu9zIi >>978
イミフ。例を出せ例を
イミフ。例を出せ例を
980デフォルトの名無しさん
2019/07/02(火) 04:12:40.39ID:Atdu9zIi981デフォルトの名無しさん
2019/07/02(火) 04:21:16.83ID:uO4UDEG+ なにか前処理
hoge=0
cat | while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
とか。ループ中に例外的なのを検出した後にトップレベルで整理するとか。あとは、whileの後にもパイプで続けてその後でとか。局所的なので使うことはないな
気が短いなw
hoge=0
cat | while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
とか。ループ中に例外的なのを検出した後にトップレベルで整理するとか。あとは、whileの後にもパイプで続けてその後でとか。局所的なので使うことはないな
気が短いなw
982デフォルトの名無しさん
2019/07/02(火) 04:29:33.75ID:Atdu9zIi こうすればいいだけw
なにか前処理
cat | {
hoge=0
while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
}
なにか前処理
cat | {
hoge=0
while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
}
983デフォルトの名無しさん
2019/07/02(火) 04:33:37.38ID:uO4UDEG+ ほんとうにそれでいいと思うのか?w
なんか無理してんなと思うけど、POSIXに拘る人はそう書くのねと理解はした、お応えありがとう
なんか無理してんなと思うけど、POSIXに拘る人はそう書くのねと理解はした、お応えありがとう
984デフォルトの名無しさん
2019/07/02(火) 04:35:32.93ID:Atdu9zIi985デフォルトの名無しさん
2019/07/02(火) 04:37:28.40ID:uO4UDEG+ いやあ、ああいうのが普通な人には何も言い返せないよ。てか「言い返す」って。喧嘩かなんかなのか?w
986デフォルトの名無しさん
2019/07/02(火) 04:41:11.93ID:Atdu9zIi 喧嘩じゃなくて、お前の意見を言えって。
正しく動くだろ?
なにか問題が有るのか?
正しく動くだろ?
なにか問題が有るのか?
987デフォルトの名無しさん
2019/07/02(火) 04:45:47.25ID:Atdu9zIi シェルスクリプト初心者です。 { } の使い方がわかりません
とかいうなら、関数にでもすればいい
foo() {
なにか前処理
hoge=0
while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
}
cat | foo
お前の苦手な { } が無くてすんだぞw
サブシェルうんぬんの前に、関数の中で使う変数は、関数の中にとどめておけよ。
わかりやすいコーディングというのはこういうものだ
とかいうなら、関数にでもすればいい
foo() {
なにか前処理
hoge=0
while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
}
cat | foo
お前の苦手な { } が無くてすんだぞw
サブシェルうんぬんの前に、関数の中で使う変数は、関数の中にとどめておけよ。
わかりやすいコーディングというのはこういうものだ
988デフォルトの名無しさん
2019/07/02(火) 04:47:32.87ID:uO4UDEG+ そのサブシェルの中で後は全部やるんでしょ?必要な部分を。それで問題無いと思うなら、それでいいんじゃないの
「なんか無理してんな」ってのがわからないんだったらそれはそれでいいよ。元ネタと同じく、好みの問題。好みがわからないでしょ
「なんか無理してんな」ってのがわからないんだったらそれはそれでいいよ。元ネタと同じく、好みの問題。好みがわからないでしょ
989デフォルトの名無しさん
2019/07/02(火) 04:50:12.51ID:Atdu9zIi だから問題ないし、お前を含めて誰も問題があると言ってない。
お前さ、なんで自分で問題点を指摘できないのに
さも問題があるかのように装ってるわけ?
ばれないとでも思った?
お前さ、なんで自分で問題点を指摘できないのに
さも問題があるかのように装ってるわけ?
ばれないとでも思った?
990デフォルトの名無しさん
2019/07/02(火) 04:50:38.17ID:uO4UDEG+ なにか頑張ってるな。そんな話じゃないよ
知識自慢臭しかもうしませんよ?そんなの自慢げというか馬鹿にしたいだけなのか知らんけど
知識自慢臭しかもうしませんよ?そんなの自慢げというか馬鹿にしたいだけなのか知らんけど
991デフォルトの名無しさん
2019/07/02(火) 04:53:12.30ID:Atdu9zIi そんな話じゃないよ → じゃあどんな話なのか → 答えずに逃げる(笑)
992デフォルトの名無しさん
2019/07/02(火) 04:53:48.95ID:uO4UDEG+ 問題がある問題がないの話じゃないよ。好みだよ好み
そう次々あれこれ考えなくてもw bash(など)の拡張使えばスッキリだろうにという
そう次々あれこれ考えなくてもw bash(など)の拡張使えばスッキリだろうにという
993デフォルトの名無しさん
2019/07/02(火) 04:54:45.55ID:Atdu9zIi >>987のどこがスッキリとしてないというのか?
お前ならbashでどう書き直す?w
お前ならbashでどう書き直す?w
994デフォルトの名無しさん
2019/07/02(火) 04:57:00.91ID:uO4UDEG+ hoge=0
while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done < <(cat)
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
そもそもやりたいことがレベルが変わらずにそのままでスッキリだなwあとあとでなにか追加もとかもね
while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done < <(cat)
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
そもそもやりたいことがレベルが変わらずにそのままでスッキリだなwあとあとでなにか追加もとかもね
995デフォルトの名無しさん
2019/07/02(火) 04:58:47.96ID:Atdu9zIi >>994
それ、俺が書いたfoo関数の中身を書いただけじゃねーかw
hoge=0
while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
これで動くよ。
foo() {
上のコード
}
cat | foo
ってやればいいだけ
それ、俺が書いたfoo関数の中身を書いただけじゃねーかw
hoge=0
while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
これで動くよ。
foo() {
上のコード
}
cat | foo
ってやればいいだけ
996デフォルトの名無しさん
2019/07/02(火) 05:01:09.48ID:Atdu9zIi Q.これをPOSIX準拠で書きたいのですが?
hoge=0
while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done < <(cat)
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
A. まず1. 関数にしましょう
foo() {
hoge=0
while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done < <(cat)
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
}
foo
hoge=0
while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done < <(cat)
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
A. まず1. 関数にしましょう
foo() {
hoge=0
while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done < <(cat)
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
}
foo
997デフォルトの名無しさん
2019/07/02(火) 05:01:36.77ID:uO4UDEG+ いや、だから、お題に対してだけじゃなくな。普遍的にって言ってるでしょ
それが普遍的なのか?
なんで否定されたのをそんなに拘るねん。否定してんのは俺の好みじゃないってだけだぞ?w
それが普遍的なのか?
なんで否定されたのをそんなに拘るねん。否定してんのは俺の好みじゃないってだけだぞ?w
998デフォルトの名無しさん
2019/07/02(火) 05:01:53.99ID:Atdu9zIi 2. bash依存の命令をなくしましょう。
foo() {
hoge=0
while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
}
cat | foo
はい。完成です(笑)
foo() {
hoge=0
while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
}
cat | foo
はい。完成です(笑)
999デフォルトの名無しさん
2019/07/02(火) 05:02:22.44ID:Atdu9zIi >>997
だから < <(cat) を使う場合の普遍的な解答
だから < <(cat) を使う場合の普遍的な解答
1000デフォルトの名無しさん
2019/07/02(火) 05:02:50.90ID:Atdu9zIi やっぱり書き方を知らんだけだったな(笑)
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 283日 5時間 28分 4秒
新しいスレッドを立ててください。
life time: 283日 5時間 28分 4秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否 [夜のけいちゃん★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★5 [ぐれ★]
- 映画「鬼滅の刃」の興行収入急減、日本行き航空券大量キャンセル…中国メディア報道 [蚤の市★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 「タワマン天国」に飛びつく若者…SNSに転がる「成功体験」に続けるのか 湾岸エリアの業者が語った現実 [蚤の市★]
- ホリエモンが政治家達を呼んで台湾有事について議論する動画を公開したんだけどお前らはこれの内容についてどう思う [317527133]
- 【正論】玉木雄一郎「高市さんの答弁は米軍が攻撃を受けた場合を前提としており、撤回するのは難しい」特定野党を完全論破 [519511584]
- 麻生太郎氏、高市政権と距離を置きはじめる(´・ω・`) [399259198]
- フランス「G7に習近平主席を呼びたい」ドイツ「良い考えだ」 高市さん...? [237216734]
- 自閉症が「んなっしょい」と連呼するお🏡
- 俺と空条承太郎との共通点あげてけwwww
