シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
シェルスクリプト総合 その31
https://mevius.5ch.net/test/read.cgi/tech/1565446670/
探検
シェルスクリプト総合 その32
■ このスレッドは過去ログ倉庫に格納されています
2019/10/25(金) 00:08:45.53ID:6btPTvif
488デフォルトの名無しさん
2020/01/31(金) 07:54:20.77ID:aEgzRTpo シェルスクリプトでaliasを使うことでしか実現できない挙動ってある?
コマンドを別に定義する方法って主に3通りくらいある
関数: somecmd() { ... }
別名: alias somecmd=...
変数 : somecmd=...
と思うんだけど、この内aliasに独特の特長ってあるのかな。
コマンドを別に定義する方法って主に3通りくらいある
関数: somecmd() { ... }
別名: alias somecmd=...
変数 : somecmd=...
と思うんだけど、この内aliasに独特の特長ってあるのかな。
489デフォルトの名無しさん
2020/01/31(金) 09:38:38.09ID:fxx+hpXO >>478
UTF-8は上位ビットを見れば文字の先頭か途中かまた何バイトなのか等がわかるので変換しなくても文字数はわかる(詳しくはWikipedia等を参照)。
そんな小技使って作られているかどうかはわからないが。
UTF-8は上位ビットを見れば文字の先頭か途中かまた何バイトなのか等がわかるので変換しなくても文字数はわかる(詳しくはWikipedia等を参照)。
そんな小技使って作られているかどうかはわからないが。
490デフォルトの名無しさん
2020/01/31(金) 10:37:58.90ID:XoEdclD3491デフォルトの名無しさん
2020/01/31(金) 10:41:13.70ID:XoEdclD3 alias IF=if
alias THEN=then
alias ENDIF=fi
IF [ a = a ]; THEN
echo aaa
ENDIF
alias THEN=then
alias ENDIF=fi
IF [ a = a ]; THEN
echo aaa
ENDIF
492デフォルトの名無しさん
2020/01/31(金) 11:40:54.85ID:aEgzRTpo >>490
一応変数使ってもいけね?
loop='while true; do'
eval "$loop echo aaa; sleep 0.1; done"
てかeval使えばなんでもありだから,
evalを使わずにって条件だと,挙げてくれた例みたいなことが
実現できるのかな。
一応変数使ってもいけね?
loop='while true; do'
eval "$loop echo aaa; sleep 0.1; done"
てかeval使えばなんでもありだから,
evalを使わずにって条件だと,挙げてくれた例みたいなことが
実現できるのかな。
493デフォルトの名無しさん
2020/01/31(金) 11:42:09.27ID:XoEdclD3 × 一応変数使ってもいけね?
○ eval使ってもいけね?
だろ
○ eval使ってもいけね?
だろ
494デフォルトの名無しさん
2020/01/31(金) 11:42:25.98ID:XoEdclD3 そして、evalを使わないと実現できない
495デフォルトの名無しさん
2020/01/31(金) 14:09:19.88ID:y3M2GGQ2496デフォルトの名無しさん
2020/01/31(金) 15:35:28.23ID:aEgzRTpo >>495
関数でもいけんじゃん
関数でもいけんじゃん
497デフォルトの名無しさん
2020/01/31(金) 19:02:07.40ID:drX8qvaW >>496
趣旨を理解してないなら黙ってて
趣旨を理解してないなら黙ってて
498デフォルトの名無しさん
2020/01/31(金) 19:33:30.56ID:dOfy+zuH shebangにさ、#!/bin/sh -eu って書いたらちゃんと動くのに、
#!/bin/sh -e -u って書いたら動かない
オプションは一つしか受け付けない?
これってどこに仕様ありますか?
#!/bin/sh -e -u って書いたら動かない
オプションは一つしか受け付けない?
これってどこに仕様ありますか?
499デフォルトの名無しさん
2020/01/31(金) 19:37:01.40ID:dOfy+zuH 一つしか受け付けないと言うか
#!/bin/sh -e -u
って書いたら
/bin/sh "-e -u"
って解釈されるのか
全体が一つの引数
#!/bin/sh -e -u
って書いたら
/bin/sh "-e -u"
って解釈されるのか
全体が一つの引数
500デフォルトの名無しさん
2020/01/31(金) 20:39:38.35ID:NEnVm4zd 実はshebangの決まった仕様はないからOS依存
501デフォルトの名無しさん
2020/01/31(金) 21:40:42.29ID:O7+QvGXX502デフォルトの名無しさん
2020/01/31(金) 21:53:14.63ID:ppIZAX+V503デフォルトの名無しさん
2020/01/31(金) 22:07:06.55ID:EhZkCGRB この前会見したマスごみが感染元で
504デフォルトの名無しさん
2020/01/31(金) 22:09:28.96ID:MHZeJgmL505デフォルトの名無しさん
2020/01/31(金) 22:17:23.02ID:NEnVm4zd >>501
a) 1つ目のスペースの前がコマンド名、その後はスペースも含めて1つの引数 (Linux等)
b) 1つ目のスペースの前がコマンド名、その後はスペース区切りの複数の引数 (昔のBSDやOSX等)
c) スペースも含めて全部コマンド名 (実在するか不明)
d) shebang非対応 (昔はあったがほぼ絶滅)
あとは、最大長とかにも注意
a) 1つ目のスペースの前がコマンド名、その後はスペースも含めて1つの引数 (Linux等)
b) 1つ目のスペースの前がコマンド名、その後はスペース区切りの複数の引数 (昔のBSDやOSX等)
c) スペースも含めて全部コマンド名 (実在するか不明)
d) shebang非対応 (昔はあったがほぼ絶滅)
あとは、最大長とかにも注意
506デフォルトの名無しさん
2020/01/31(金) 22:38:43.88ID:O7+QvGXX macは違うのかよ。相変わらず独自文化だな。
507デフォルトの名無しさん
2020/01/31(金) 23:54:24.78ID:9zbnwalP >>505
#!の次は本来スペースだって知ってた?
#!の次は本来スペースだって知ってた?
508デフォルトの名無しさん
2020/02/01(土) 00:09:21.13ID:4wtj5811509デフォルトの名無しさん
2020/02/01(土) 01:59:55.43ID:Kd/XXZch510デフォルトの名無しさん
2020/02/01(土) 02:50:01.41ID:SC0qANHR511デフォルトの名無しさん
2020/02/01(土) 18:54:16.89ID:izL/3CDz >>510
オライリーのシェルスクリプトの本には
一部のBSD系OSで#! の後にスペースが要るみたいなこと書いてあった。
でも、これは又聞きで全部試した訳じゃないけど
そんな挙動のBSD実装はなくて、
実はGNUプロジェクトのソースコードに誰かが勘違いして書き込んだコメントが元らしい。
オライリーのシェルスクリプトの本には
一部のBSD系OSで#! の後にスペースが要るみたいなこと書いてあった。
でも、これは又聞きで全部試した訳じゃないけど
そんな挙動のBSD実装はなくて、
実はGNUプロジェクトのソースコードに誰かが勘違いして書き込んだコメントが元らしい。
512デフォルトの名無しさん
2020/02/01(土) 19:00:18.82ID:S6J9WFvX513デフォルトの名無しさん
2020/02/01(土) 19:16:51.31ID:rbhAio8f >>512
ソースチラ見した限りでは元々は a) ぽい。# の後ろはコメントとして切り捨ててるみたいだが
FreeBSDをガシガシ取り入れた時にFreeBSDが b) だからに変えたぽいかな。その後FreeBSDが a) に変わったが追従せずな
ソースチラ見した限りでは元々は a) ぽい。# の後ろはコメントとして切り捨ててるみたいだが
FreeBSDをガシガシ取り入れた時にFreeBSDが b) だからに変えたぽいかな。その後FreeBSDが a) に変わったが追従せずな
514デフォルトの名無しさん
2020/02/01(土) 19:25:08.01ID:rbhAio8f515デフォルトの名無しさん
2020/02/01(土) 19:29:08.08ID:7bhnkH1k macOSでshebangにダブルクォートが入っていた場合どうなるんだろうなぁ
すぐそこにマシンあるから調べればわかるけどさw
すぐそこにマシンあるから調べればわかるけどさw
516デフォルトの名無しさん
2020/02/01(土) 19:56:33.67ID:rbhAio8f 一番古い10.0から公開されてる最新の10.4までで、そこでダブルクォート文字は現れない、'\n'、'#'、' '、'\t' ぐらいしか文字としてナニかを判断してない
単なる文字だね。そのまま引数としての単なる文字として
単なる文字だね。そのまま引数としての単なる文字として
517デフォルトの名無しさん
2020/02/01(土) 20:38:02.21ID:7bhnkH1k 日本語が不自由だぞw
518デフォルトの名無しさん
2020/02/01(土) 20:50:05.02ID:izL/3CDz shebangは悪い文化
519デフォルトの名無しさん
2020/02/01(土) 20:54:33.24ID:7bhnkH1k shebangよりも拡張子の方が良かったのかな?
520デフォルトの名無しさん
2020/02/01(土) 20:57:55.39ID:rbhAio8f なんか説明しようとしたんだがな
ダブルクォートが入っていても関係ないよ。なぜかは調べてね
ダブルクォートが入っていても関係ないよ。なぜかは調べてね
521デフォルトの名無しさん
2020/02/01(土) 20:59:45.01ID:rbhAio8f522デフォルトの名無しさん
2020/02/01(土) 21:13:13.94ID:izL/3CDz >>521
単なる表現だから気にしないでほしいけど
悪い←実装ごとに挙動がバラバラ・標準仕様が規定を諦めている
文化←にもかかわらずほとんどの実装がこれを取り入れていて、利用者もしょうがなく使っている
という状況を言ったつもりだった。
単なる表現だから気にしないでほしいけど
悪い←実装ごとに挙動がバラバラ・標準仕様が規定を諦めている
文化←にもかかわらずほとんどの実装がこれを取り入れていて、利用者もしょうがなく使っている
という状況を言ったつもりだった。
523デフォルトの名無しさん
2020/02/01(土) 21:19:14.91ID:rbhAio8f >>522
なるほど
まあ、誰も(大多数が)困ってないんじゃなのかな、統一されてなくても
もしくはそれぞれがそれぞれが良いと思って譲らないとかかwそれは確かに悪い文化だな
誰も困ってないって方だと思うけど
なるほど
まあ、誰も(大多数が)困ってないんじゃなのかな、統一されてなくても
もしくはそれぞれがそれぞれが良いと思って譲らないとかかwそれは確かに悪い文化だな
誰も困ってないって方だと思うけど
524デフォルトの名無しさん
2020/02/01(土) 21:48:34.75ID:7bhnkH1k shebangが悪い所の一つは絶対パス指定ってところなんだよね
content-typeみたいなのだったら良かったのに
shebangのオプションに関しては使わないっていうのが正解なんだと思う
なぜならファイルを直接指定して実行すると変わっちゃうから
content-typeみたいなのだったら良かったのに
shebangのオプションに関しては使わないっていうのが正解なんだと思う
なぜならファイルを直接指定して実行すると変わっちゃうから
525デフォルトの名無しさん
2020/02/02(日) 14:26:51.03ID:xQhhTPSe てかshebang使わなくてもシェルから起動したらそのまま動かない?
と思って、念の為Bashから起動したらまさかのaliasが効かなかった……。
こういうのを避ける為に#!/bin/shとせざる得ないのか。残念。
と思って、念の為Bashから起動したらまさかのaliasが効かなかった……。
こういうのを避ける為に#!/bin/shとせざる得ないのか。残念。
526デフォルトの名無しさん
2020/02/02(日) 16:53:40.51ID:XLs1Cb+c527デフォルトの名無しさん
2020/02/02(日) 17:45:00.84ID:Cva1xhgA528デフォルトの名無しさん
2020/02/03(月) 06:12:52.05ID:UlsnX0ii みんな
#!/bin/env python
じゃないの?
環境変数使ってくれるよ
#!/bin/env python
じゃないの?
環境変数使ってくれるよ
529デフォルトの名無しさん
2020/02/03(月) 08:04:03.85ID:24GdBe+7 envがあるところは/usr/bin/envな
あとそれ使うと
#!/usr/bin/env bash -e
とかできなくなるからな
Linuxで
あとそれ使うと
#!/usr/bin/env bash -e
とかできなくなるからな
Linuxで
530デフォルトの名無しさん
2020/02/03(月) 09:05:47.42ID:gnFHl5C0 >>529
/bin/envの環境と/usr/bin/envの環境がある
/bin/envの環境と/usr/bin/envの環境がある
531デフォルトの名無しさん
2020/02/03(月) 10:00:30.45ID:24GdBe+7 >>530
envってコマンドを使うと、環境の違いを吸収してくれるから便利だぞ
envってコマンドを使うと、環境の違いを吸収してくれるから便利だぞ
532デフォルトの名無しさん
2020/02/03(月) 11:22:27.68ID:8ufJ91gq >envがあるところは/usr/bin/env
に対しての
/bin/envにある環境もあるって話だろ。「それってなに?」だろ言うなら
に対しての
/bin/envにある環境もあるって話だろ。「それってなに?」だろ言うなら
533デフォルトの名無しさん
2020/02/03(月) 11:28:54.24ID:sGoeeXwW >>531
そのenvコマンドとやらのパスが環境ごとに違うんだよなぁ…。
そのenvコマンドとやらのパスが環境ごとに違うんだよなぁ…。
534デフォルトの名無しさん
2020/02/03(月) 11:40:34.98ID:8ufJ91gq KCディフェンス覚醒したか?するか?
535デフォルトの名無しさん
2020/02/03(月) 11:41:11.41ID:8ufJ91gq やったな、KCディフェンスっ
536デフォルトの名無しさん
2020/02/03(月) 11:41:39.96ID:YoBHNt10 Mac の香具師は、env をよく使う
537デフォルトの名無しさん
2020/02/03(月) 11:41:40.96ID:8ufJ91gq すまん、誤爆もいいとこ。ちょっと興奮してたw
538デフォルトの名無しさん
2020/02/03(月) 11:57:54.57ID:MUEM5Vrv env env env ...
539デフォルトの名無しさん
2020/02/03(月) 12:09:00.93ID:sGoeeXwW なんかこの前々スレあたりで標準出力と標準エラー出力に別々の処理を施した上で
どちらも標準出力に流す方法を見た覚えがあるんだけど
今それっぽい語句で検索しても引っ掛からない。
覚えてる人いない?
どちらも標準出力に流す方法を見た覚えがあるんだけど
今それっぽい語句で検索しても引っ掛からない。
覚えてる人いない?
540デフォルトの名無しさん
2020/02/03(月) 12:58:07.85ID:24GdBe+7541417
2020/02/04(火) 21:40:22.30ID:M0ahQJ78 >>446
ありがとうございます。
コードを参考にさせていただいて、
sed -e 's/\("[^"]*"\)*,\("[^"]*"\)*/\1 \2/g'
という手法にしました。
今のところ
<<. cat |
aa,"dd,dd","aa,bb",cc,"ab c"
.
sed -e 's/\("[^"]*"\)*,\("[^"]*"\)*/\1 \2/g'
がうまいこといくので満足してます。
どうもお手数おかけしました。
ありがとうございます。
コードを参考にさせていただいて、
sed -e 's/\("[^"]*"\)*,\("[^"]*"\)*/\1 \2/g'
という手法にしました。
今のところ
<<. cat |
aa,"dd,dd","aa,bb",cc,"ab c"
.
sed -e 's/\("[^"]*"\)*,\("[^"]*"\)*/\1 \2/g'
がうまいこといくので満足してます。
どうもお手数おかけしました。
542デフォルトの名無しさん
2020/02/04(火) 22:00:02.89ID:zwthX76y case $value in
ここ)
esac
ここって何ていうの?globじゃないよね?
ここ)
esac
ここって何ていうの?globじゃないよね?
543デフォルトの名無しさん
2020/02/04(火) 22:01:37.15ID:/eeo/zhy bash(1) だと pattern って書いてある
544デフォルトの名無しさん
2020/02/04(火) 22:11:53.72ID:zwthX76y パターンかぁ。汎用的すぎるなぁ。
545デフォルトの名無しさん
2020/02/05(水) 07:03:40.14ID:TkSDhbEE (unofficial) Bash Strict Modeって知ってる?
http://redsymbol.net/articles/unofficial-bash-strict-mode/
これが何って話があるわけじゃないんだけど有名なのかな?と思って
外国だとそれなりに情報出てくるけど日本はあまり見つからない
名前が知られてないだけでsetで-eu -o pipefailしましょうというのは聞くけどね
ただIFS=$'\n\t'は知らなかったな。これやったほうがいいんかな?
スペースが削られてるから問題起きそうだけど
http://redsymbol.net/articles/unofficial-bash-strict-mode/
これが何って話があるわけじゃないんだけど有名なのかな?と思って
外国だとそれなりに情報出てくるけど日本はあまり見つからない
名前が知られてないだけでsetで-eu -o pipefailしましょうというのは聞くけどね
ただIFS=$'\n\t'は知らなかったな。これやったほうがいいんかな?
スペースが削られてるから問題起きそうだけど
546デフォルトの名無しさん
2020/02/05(水) 08:00:23.89ID:ER23be8Q547デフォルトの名無しさん
2020/02/05(水) 08:25:41.70ID:TkSDhbEE >>546
それは変数使ってるわけじゃないから問題なく動くよ
それは変数使ってるわけじゃないから問題なく動くよ
548デフォルトの名無しさん
2020/02/07(金) 21:49:29.34ID:fFz2F73L https://github.com/bashup/mdsh
↑おもしろい。シェルも使える文芸的プログラミング
↑おもしろい。シェルも使える文芸的プログラミング
549デフォルトの名無しさん
2020/02/07(金) 22:25:08.40ID:LLO+pCZY めんどくさいので3行にまとめてくれ
550デフォルトの名無しさん
2020/02/07(金) 22:46:56.58ID:LLO+pCZY なるほど。文芸的プログラミングという
ドキュメントを書くときにコードを埋め込んで
(動作確認のために?)実行できるようにするための
マークアップ言語みたいなものがあるんだな
コードの中にコメントを埋め込むのとは逆の発想か
ドキュメントを書くときにコードを埋め込んで
(動作確認のために?)実行できるようにするための
マークアップ言語みたいなものがあるんだな
コードの中にコメントを埋め込むのとは逆の発想か
551デフォルトの名無しさん
2020/02/07(金) 22:58:24.38ID:YkBBCjCg bashのsourceって英語としては意味なんだろう?
includeとかimportだったら読み込むってわかるけど、
なんでsourceって単語にしたんだろうか
includeとかimportだったら読み込むってわかるけど、
なんでsourceって単語にしたんだろうか
552デフォルトの名無しさん
2020/02/08(土) 00:06:22.51ID:Ld8bPHII なんのことかと思ったらMarkdown文書をソースとするshellがありますぞというだけかという感じ
553デフォルトの名無しさん
2020/02/08(土) 08:03:47.73ID:EnngxFza なんでそんなに偉そうなんだよw
554デフォルトの名無しさん
2020/02/08(土) 12:05:42.11ID:vyHTTWz1555デフォルトの名無しさん
2020/02/08(土) 14:06:09.11ID:EnngxFza 今から考えるとimportコマンドとかの方がいいね。
556デフォルトの名無しさん
2020/02/08(土) 14:51:42.04ID:0wE1WgKD importは他のファイル等で定義済みの関数やクラスを今の名前空間に持ってくるイメージ
sourceは他のファイルに書いてるコードを実行するイメージ
言語によってはやってること同じだったりするけど主たる目的が違う気がする
sourceは他のファイルに書いてるコードを実行するイメージ
言語によってはやってること同じだったりするけど主たる目的が違う気がする
557デフォルトの名無しさん
2020/02/08(土) 15:15:58.57ID:rR7NyU2B だな
558デフォルトの名無しさん
2020/02/08(土) 15:41:05.52ID:WgESEu8I > sourceは他のファイルに書いてるコードを実行するイメージ
動作としてはそうなんだけど、
気になってるのは英単語としてどうかなんだよね
変なことを気にしてると思うけど
そもそもsourceって動詞?ああ、動詞としての意味もあるのか?
https://talking-english.net/source/
> sourceは動詞でも使い方があり「仕入れる」といった意味になりますが、
>
> 例文
> We source our coffee beans from Venezuela.
> 私たちはコーヒー豆をベネズエラから仕入れている。
動作としてはそうなんだけど、
気になってるのは英単語としてどうかなんだよね
変なことを気にしてると思うけど
そもそもsourceって動詞?ああ、動詞としての意味もあるのか?
https://talking-english.net/source/
> sourceは動詞でも使い方があり「仕入れる」といった意味になりますが、
>
> 例文
> We source our coffee beans from Venezuela.
> 私たちはコーヒー豆をベネズエラから仕入れている。
559デフォルトの名無しさん
2020/02/08(土) 22:01:26.95ID:EnngxFza importに名前空間を移動する印象があるのは同意だけど
sourceの「他のファイルに書いてるコードを実行する」ような印象はないな。
つーかsourceってシェル以外でみかけない。
名前空間とか高級な概念を無視する、単なる対象ファイルの実行・読み込みは
includeが一番「それっぽい」な。
C言語みたいなコンパイル方式でもm4・Xresourceみたいなインタプリタ・設定ファイル形式でも。
sourceの「他のファイルに書いてるコードを実行する」ような印象はないな。
つーかsourceってシェル以外でみかけない。
名前空間とか高級な概念を無視する、単なる対象ファイルの実行・読み込みは
includeが一番「それっぽい」な。
C言語みたいなコンパイル方式でもm4・Xresourceみたいなインタプリタ・設定ファイル形式でも。
560デフォルトの名無しさん
2020/02/08(土) 23:17:01.30ID:WgESEu8I sourceの本来の名前が . だとして、
/etc/profileとかに . /etc/bash.bashrc とか書いてあるでしょ?
これは関数定義等を読み込んでると言うより、
ただそこにあるスクリプトを実行してるという感じがしない?
/etc/profileとかに . /etc/bash.bashrc とか書いてあるでしょ?
これは関数定義等を読み込んでると言うより、
ただそこにあるスクリプトを実行してるという感じがしない?
561デフォルトの名無しさん
2020/02/08(土) 23:17:36.95ID:WgESEu8I そもそもなんで . (ドット)だったのかっていう疑問もあるけどw
562デフォルトの名無しさん
2020/02/09(日) 07:56:47.77ID:u8D56ofC >>560
ああ、いや、たしかにそうなんだけど、
sourceっていう名前の(または.(ドット)って名前の)コマンドや指令が
シェルスクリプト以外で見掛けないなと思ってさ。
じゃあシェルスクリプト以外の言語でsourceに最も近いはたらきをするのは
なにかって言えば、includeかなぁ。と。
ああ、いや、たしかにそうなんだけど、
sourceっていう名前の(または.(ドット)って名前の)コマンドや指令が
シェルスクリプト以外で見掛けないなと思ってさ。
じゃあシェルスクリプト以外の言語でsourceに最も近いはたらきをするのは
なにかって言えば、includeかなぁ。と。
563デフォルトの名無しさん
2020/02/09(日) 08:09:38.60ID:WtBEbY+3 includeで言えばC言語かなぁ
でもC言語のincludeはヘッダファイルの読み込みで
(今のC++はそうとは言えないが)
実行するものはなにもないものだったよね
.やsourceを他の言語で見たことがないのは同意
なんでこの単語を選んだのか。まあ当時はそういうことをするときの
標準的な単語はなく、includeやimportの方がたまたま有名になったってだけな気もするけど
includeってC/C++以外あったっけ?
でもC言語のincludeはヘッダファイルの読み込みで
(今のC++はそうとは言えないが)
実行するものはなにもないものだったよね
.やsourceを他の言語で見たことがないのは同意
なんでこの単語を選んだのか。まあ当時はそういうことをするときの
標準的な単語はなく、includeやimportの方がたまたま有名になったってだけな気もするけど
includeってC/C++以外あったっけ?
564デフォルトの名無しさん
2020/02/09(日) 08:12:52.16ID:WtBEbY+3 include, import, load, require, source
他に何があるかな?
他に何があるかな?
565デフォルトの名無しさん
2020/02/09(日) 08:15:45.81ID:WtBEbY+3 とういうか、その話をするためにきたんじゃなかったw
makeってどういう亜種があるの?
それぞれのOSでどこまで互換性があるの?
どこかにそういう情報まとまってないかな
makeってどういう亜種があるの?
それぞれのOSでどこまで互換性があるの?
どこかにそういう情報まとまってないかな
566デフォルトの名無しさん
2020/02/09(日) 08:19:42.30ID:WtBEbY+3 https://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html
ここにPOSIXに関しては書いてあるけど、現実としてはどこまで互換性があるのかなと
つまり便利ないろんな機能(?が使いたいけど、ここには書いて無いようで
使っていいものなのかわからない
ここにPOSIXに関しては書いてあるけど、現実としてはどこまで互換性があるのかなと
つまり便利ないろんな機能(?が使いたいけど、ここには書いて無いようで
使っていいものなのかわからない
567デフォルトの名無しさん
2020/02/09(日) 08:26:03.00ID:WtBEbY+3 オライリーのGNU Make、無料で公開されてたヽ(=´▽`=)ノ
https://www.yokoweb.net/2016/08/28/gnu-make-3rd-pdf-github/
https://www.yokoweb.net/2016/08/28/gnu-make-3rd-pdf-github/
568デフォルトの名無しさん
2020/02/09(日) 08:40:31.63ID:WtBEbY+3 Makeについて調べていたら上のシバンの話、!の後にスペース入れれっていうのが見つかったでw
https://web.sfc.wide.ad.jp/~sagawa/gnujdoc/autoconf-2.59/autoconf-ja_10.html
> また,以 下のように,インタプリタ仕様として,感嘆符の後にスペースを含めてください.
>
> #! /usr/bin/perl
https://web.sfc.wide.ad.jp/~sagawa/gnujdoc/autoconf-2.59/autoconf-ja_10.html
> また,以 下のように,インタプリタ仕様として,感嘆符の後にスペースを含めてください.
>
> #! /usr/bin/perl
569デフォルトの名無しさん
2020/02/09(日) 08:41:08.32ID:WtBEbY+3 ここまでコピペするべきだった
> パスの前のスペースを省略する場合,(DYNIXのような)4.2BSDを基本 とするシステムは,
> `#! /'は4バイトのマジックナンバーとして解釈される ので,その行を無視します.
> 古いシステムでは,`#!'行の長さにも小さな 制限があり,例えばSunOS 4では,(改行を含めず)32バイトになります.
> パスの前のスペースを省略する場合,(DYNIXのような)4.2BSDを基本 とするシステムは,
> `#! /'は4バイトのマジックナンバーとして解釈される ので,その行を無視します.
> 古いシステムでは,`#!'行の長さにも小さな 制限があり,例えばSunOS 4では,(改行を含めず)32バイトになります.
570デフォルトの名無しさん
2020/02/09(日) 09:07:13.64ID:nPaz0f5T >>563
VBScript
VBScript
571デフォルトの名無しさん
2020/02/09(日) 10:20:28.40ID:gml78nRc >>569
それ間違っている
https://www.in-ulm.de/~mascheck/various/shebang/#blankrequired
>You may also read, that (allegedly) such a kernel parses "#! /" as a 32-bit (long) magic.
>4.2BSD in fact doesn't require it, although previous versions of the GNU autoconf tutorial wrongly claimed this ("10. Portable Shell Programming", corrected with release 2.64, 2009-07-26).
>But instead, see 4.2BSD, /usr/src/sys/sys/kern_exec.c (the first regular occurence). A blank is accepted but not required.
それ間違っている
https://www.in-ulm.de/~mascheck/various/shebang/#blankrequired
>You may also read, that (allegedly) such a kernel parses "#! /" as a 32-bit (long) magic.
>4.2BSD in fact doesn't require it, although previous versions of the GNU autoconf tutorial wrongly claimed this ("10. Portable Shell Programming", corrected with release 2.64, 2009-07-26).
>But instead, see 4.2BSD, /usr/src/sys/sys/kern_exec.c (the first regular occurence). A blank is accepted but not required.
572デフォルトの名無しさん
2020/02/09(日) 12:28:36.33ID:mw6BsSoR pgrepには検索文字数の制限があるのか?
573デフォルトの名無しさん
2020/02/09(日) 12:29:59.77ID:3rHefPWY そんなのあるのか? pgr
574デフォルトの名無しさん
2020/02/09(日) 13:26:52.28ID:u8D56ofC >>572
どこ情報?
どこ情報?
575デフォルトの名無しさん
2020/02/09(日) 14:04:29.38ID:Fnglc4p2 >>563
あなたはC言語がUNIXを作るために作られた言語だと知らないの?
あなたはC言語がUNIXを作るために作られた言語だと知らないの?
576デフォルトの名無しさん
2020/02/09(日) 14:07:08.39ID:Fnglc4p2 >>569
そもそもどのUNIX、Linuxの話をしているのか?
そもそもどのUNIX、Linuxの話をしているのか?
577デフォルトの名無しさん
2020/02/09(日) 14:20:04.33ID:QqkdphAP >>575
それがどう話につながるのか説明してくれ
それがどう話につながるのか説明してくれ
578デフォルトの名無しさん
2020/02/09(日) 14:57:41.05ID:RDxzsaY4 shellはUNIX上でのいちプログラム、UNIXはCで作られてる。shellだってCで(途中から?)作られていただろう。故に、
>当時はそういうことをするときの標準的な単語はなく、includeやimportの方がたまたま有名になった
ということはなく、同じならinclude使うんじゃねってとこかな?なんか違うから違うのにしたという方が読みやすいかなあ
shell scriptはPrologの構文が元じゃなかったっけ。ちょっとググったとこでは、
:-
か。なんかこれに似てるといえば似てるな . は
>当時はそういうことをするときの標準的な単語はなく、includeやimportの方がたまたま有名になった
ということはなく、同じならinclude使うんじゃねってとこかな?なんか違うから違うのにしたという方が読みやすいかなあ
shell scriptはPrologの構文が元じゃなかったっけ。ちょっとググったとこでは、
:-
か。なんかこれに似てるといえば似てるな . は
579デフォルトの名無しさん
2020/02/09(日) 15:11:26.44ID:Fnglc4p2 >>577
先に存在しているC言語とは別の考えで設計されている。カリフォルニア大学のバークレー校の複数人が考えたものだから、統一感がないのは仕方ない。
先に存在しているC言語とは別の考えで設計されている。カリフォルニア大学のバークレー校の複数人が考えたものだから、統一感がないのは仕方ない。
580デフォルトの名無しさん
2020/02/09(日) 15:48:09.09ID:mPwdKOvO581デフォルトの名無しさん
2020/02/09(日) 16:48:41.40ID:RDxzsaY4582デフォルトの名無しさん
2020/02/09(日) 16:50:22.96ID:u8D56ofC for a in XXX; do
somecmd...
done
↑ここのXXXの大きさについて、SUSやらで文書化された制限ってある?
もしあるとすればどう調べればいいかな。
XXXは引数じゃないからARG_MAXとかじゃないし、
もしかしたら実質無制限?(システムのメモリに依存とか?)
somecmd...
done
↑ここのXXXの大きさについて、SUSやらで文書化された制限ってある?
もしあるとすればどう調べればいいかな。
XXXは引数じゃないからARG_MAXとかじゃないし、
もしかしたら実質無制限?(システムのメモリに依存とか?)
583デフォルトの名無しさん
2020/02/09(日) 19:33:12.64ID:wmQivLfL ksh 2020がでたのは知ってるけどkshに一体何が起きてるんです?
20年以上の開発がゴミクズとして消えるんですか?
Rewinding this repo and encouraging community
https://github.com/att/ast/issues/1466
20年以上の開発がゴミクズとして消えるんですか?
Rewinding this repo and encouraging community
https://github.com/att/ast/issues/1466
584デフォルトの名無しさん
2020/02/10(月) 00:06:22.74ID:jvWR6fCp https://github.com/att/ast/tree/ksh2020
This branch is not supported
This branch contains the ksh2020 version of the AST tools, from January 2020,
which primarily written and maintained by @krader1961 and @siteshwar.
This branch is not supported or maintained by AT&T; the repo at
https://github.com/att/ast only officially hosts ksh93u+ and the experimental ksh93v- branch.
See #1464 and #1466 for discussion and history of this decision.
Please search for forks of this repo if you are looking for ksh2020.
This branch is not supported
This branch contains the ksh2020 version of the AST tools, from January 2020,
which primarily written and maintained by @krader1961 and @siteshwar.
This branch is not supported or maintained by AT&T; the repo at
https://github.com/att/ast only officially hosts ksh93u+ and the experimental ksh93v- branch.
See #1464 and #1466 for discussion and history of this decision.
Please search for forks of this repo if you are looking for ksh2020.
585デフォルトの名無しさん
2020/02/10(月) 00:08:02.47ID:jvWR6fCp https://github.com/att/ast/issues/1466
私はAT&T Labs Research で@lkoutsofiosと協力し、コミュニティが
快適な状態にレポを復元できるかどうかを確認するためにボランティアで参加しました。これは最後に#1464で議論されました。
私はkshや技術的な問題の専門家ではなく、歴史全体を知りませんが、私の理解は
1. ksh93u +は、AT&Tからの最終的な公式リリースです。これはブランチ2012-08-01-masterにあります
2. 後のバージョンであるksh93v-は、AT&Tを離れた後に元の作者によって提供されましたが、
このバージョンは安定しているとは見なされません。これはタグksh93vで見つけることができます
3. @ krader1961はmasterブランチを数年間維持しています。彼はコードベースを合理化しようとしました
(そしてastの残りではなくkshのみをサポートしました)が、これは互換性の問題を引き起こしました。
kshの元の作者はすべてAT&Tを去りました。社内にはまだ多くのユーザーがいますが、
プロジェクトを維持および管理できるユーザーはいません。
私はAT&T Labs Research で@lkoutsofiosと協力し、コミュニティが
快適な状態にレポを復元できるかどうかを確認するためにボランティアで参加しました。これは最後に#1464で議論されました。
私はkshや技術的な問題の専門家ではなく、歴史全体を知りませんが、私の理解は
1. ksh93u +は、AT&Tからの最終的な公式リリースです。これはブランチ2012-08-01-masterにあります
2. 後のバージョンであるksh93v-は、AT&Tを離れた後に元の作者によって提供されましたが、
このバージョンは安定しているとは見なされません。これはタグksh93vで見つけることができます
3. @ krader1961はmasterブランチを数年間維持しています。彼はコードベースを合理化しようとしました
(そしてastの残りではなくkshのみをサポートしました)が、これは互換性の問題を引き起こしました。
kshの元の作者はすべてAT&Tを去りました。社内にはまだ多くのユーザーがいますが、
プロジェクトを維持および管理できるユーザーはいません。
586デフォルトの名無しさん
2020/02/10(月) 00:11:44.63ID:jvWR6fCp 私の提案は:
・ 現在のマスターをブランチ「ksh2020」(または適切なもの)に移動します。
・そのブランチのREADME.mdおよびCHANGELOG.mdをメンテナンスされていないものとして
明確にマークします。#1464をポイントし、詳細についてはこの問題を参照してください。
・ マスターブランチを2012-08-01-masterにリセットします
・リポジトリから外部の共同編集者を削除します。AT&Tの誰もこれを維持していないので、
このフォークをアクティブなものにすることは意味がありません。GitとGithubを使用すると、
誰でも自分のスペースで好きな方向にコードを取得できます。
・ 現在のマスターをブランチ「ksh2020」(または適切なもの)に移動します。
・そのブランチのREADME.mdおよびCHANGELOG.mdをメンテナンスされていないものとして
明確にマークします。#1464をポイントし、詳細についてはこの問題を参照してください。
・ マスターブランチを2012-08-01-masterにリセットします
・リポジトリから外部の共同編集者を削除します。AT&Tの誰もこれを維持していないので、
このフォークをアクティブなものにすることは意味がありません。GitとGithubを使用すると、
誰でも自分のスペースで好きな方向にコードを取得できます。
587デフォルトの名無しさん
2020/02/10(月) 00:12:00.37ID:jvWR6fCp ・ README.mdをクリーンアップして、現在の状態を反映します。「このレポには、ASTの
AT&T ksh93u +および試験的なksh93v-バージョンが含まれます。ASTおよびkshのフォークは
後である可能性があります。」
・ CONTRIBUTING.mdを変更し、テンプレートを明確にして、このフォークを
積極的に維持しておらず、何も確認しないことを約束します。
・リポジトリの説明を「AST-AT&T Software Technology」に短縮します(#1441)
これが完了したら、AT&Tでmasterブランチのksh93u +にパッチを提供する可能性があります。
些細なこと(ビルドの問題など)でない限り、貢献を確認したり受け入れたりすることはおそらくないでしょう。
最終的には、このリポジトリをアーカイブします。
現在、会社の誰もがkshのためだけにレポを作成するつもりはないと思います。
しかし、これはかなり簡単で、コミュニティが取り上げることができると思います。
AT&T ksh93u +および試験的なksh93v-バージョンが含まれます。ASTおよびkshのフォークは
後である可能性があります。」
・ CONTRIBUTING.mdを変更し、テンプレートを明確にして、このフォークを
積極的に維持しておらず、何も確認しないことを約束します。
・リポジトリの説明を「AST-AT&T Software Technology」に短縮します(#1441)
これが完了したら、AT&Tでmasterブランチのksh93u +にパッチを提供する可能性があります。
些細なこと(ビルドの問題など)でない限り、貢献を確認したり受け入れたりすることはおそらくないでしょう。
最終的には、このリポジトリをアーカイブします。
現在、会社の誰もがkshのためだけにレポを作成するつもりはないと思います。
しかし、これはかなり簡単で、コミュニティが取り上げることができると思います。
588デフォルトの名無しさん
2020/02/10(月) 00:27:01.24ID:jvWR6fCp こういうこと?
1. AST-AT&T Software Technologyはkshだけのプロジェクトではない。kshはASTプロジェクトの一部
2. 誰かがkshだけをメンテナンスしていた。ASTプロジェクト全体をメンテナンスしてる人はいない
3. 今リリースされてるksh 2020はそれ
4. ksh 2020 は後方互換性がなく古いスクリプトが動かなくなっていた
5. それは困るのでmasterを2012-08-01-masterにリセットしてアーカイブする
6. AT&Tはこのリポジトリをメンテナンスしない。 誰か開発したいのなら、ksh2020ブランチから続きをやれ
7. ksh2020ブランチにはもうメンテナンスしてないって書いてあるからそれ消してから勝手に続きをやれ
1. AST-AT&T Software Technologyはkshだけのプロジェクトではない。kshはASTプロジェクトの一部
2. 誰かがkshだけをメンテナンスしていた。ASTプロジェクト全体をメンテナンスしてる人はいない
3. 今リリースされてるksh 2020はそれ
4. ksh 2020 は後方互換性がなく古いスクリプトが動かなくなっていた
5. それは困るのでmasterを2012-08-01-masterにリセットしてアーカイブする
6. AT&Tはこのリポジトリをメンテナンスしない。 誰か開発したいのなら、ksh2020ブランチから続きをやれ
7. ksh2020ブランチにはもうメンテナンスしてないって書いてあるからそれ消してから勝手に続きをやれ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【ネット民のツッコミ】立憲・野田代表の「事実上の撤回」発言がトレンド、「高市さんそんな事は言ってない」「流石に無理あるだろw」 [1ゲットロボ★]
- 【金沢地裁】「風俗嬢に着せようと」南砺の高校で女子バレー部のユニホームを窃盗した男が説明 検察側、拘禁刑4年を求刑 [nita★]
- 【国際法を無視】日本での「中華人民共和国に台湾問題を論じる資格なし」との声に 中国外交部が厳しく反論… ★2 [BFU★]
- 【文春】元TOKIO・国分太一(51)「女性スタッフ2名への“わいせつ事案”」日テレ事情聴取の全貌が分かった! ★5 [Ailuropoda melanoleuca★]
- 【工作員】「X」のアカウント所在地公開機能が暴いた世論操作の実態 MAGA支持著名アカウントの多くが米国外から運営 日本にも波及 ★3 [ごまカンパチ★]
- 首相答弁「スパイ防止法、外国代理人登録法、ロビー活動公開法などについて速やかに法案を策定する」 [1ゲットロボ★]
- ソフトバンクグループの個人向け社債、発行額迫る10兆円。国内市場の4割占有、80万人超が保有 [256556981]
- 【動画】平口法務大臣「買春は買う側の男性の尊厳も汚される行為だ」俺たちは買わされ汚された。全ての風俗店を男性保護のため廃止へ [485187932]
- 神聖うんち帝国💩👑🏡
- 【高市悲報】中国「ふにゃふにゃ言いながら、時が自然に解決するのを期待する—そんなジャップ流は決して通用しない」 [115996789]
- 【悲報】ゼレンスキー大統領、和平案に大筋合意 ホンコンみたいなウヨ芸人を大統領にするとこうなる [455031798]
- 最近隣に座ってる同僚の頭をペチーンてやりたくなるんやけど
