シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
シェルスクリプト総合 その33
https://mevius.5ch.net/test/read.cgi/tech/1584893550/
探検
シェルスクリプト総合 その34
■ このスレッドは過去ログ倉庫に格納されています
2020/08/21(金) 15:17:55.64ID:mArnj/tT
593デフォルトの名無しさん
2020/10/15(木) 10:25:32.93ID:r6YkuFXF たっくん
シェルスクリプトでTwitterBotっていうのを見かけたけど、「コマンドの実装にGoを使う」って書いてあって「うーん?」となってしまった
リッチー大佐の中の人
まったくだ。なめてるのかと。我らの小鳥男こそシェルスクリプトによる最強のTwitterクライアントアプリだ。
もちろん、別途シェルスクリプトを組めばbotも好きなように作れる。 https://github.com/ShellShoccar-jpn/kotoriotoko
↓
シェルスクリプトでTwitterBotっていうのを見かけたけど、「コマンドの実装にGoを使う」って書いてあって「うーん?」となってしまった
リッチー大佐の中の人
まったくだ。なめてるのかと。我らの小鳥男こそシェルスクリプトによる最強のTwitterクライアントアプリだ。
もちろん、別途シェルスクリプトを組めばbotも好きなように作れる。 https://github.com/ShellShoccar-jpn/kotoriotoko
↓
594デフォルトの名無しさん
2020/10/15(木) 10:26:22.84ID:r6YkuFXF https://github.com/ShellShoccar-jpn/kotoriotoko/blob/master/UTL/base64
# Main
(cat ${1+"$@"}; echo '') |
awk ' #
BEGIN { #
# --- prepare #
OFS = ""; #
ORS = ""; #
# --- prepare encoding #
for(i= 0;i<256;i++){c2p[sprintf("%c",i)]=sprintf("%%%02X",i);} #
c2p[" "]="'"$instead_of_spc"'"; #
for(i=48;i< 58;i++){c2p[sprintf("%c",i)]=sprintf("%c",i); } #
for(i=65;i< 91;i++){c2p[sprintf("%c",i)]=sprintf("%c",i); } #
for(i=97;i<123;i++){c2p[sprintf("%c",i)]=sprintf("%c",i); } #
c2p["-"]="-"; c2p["."]="."; c2p["_"]="_"; c2p["~"]="~"; #
# Main
(cat ${1+"$@"}; echo '') |
awk ' #
BEGIN { #
# --- prepare #
OFS = ""; #
ORS = ""; #
# --- prepare encoding #
for(i= 0;i<256;i++){c2p[sprintf("%c",i)]=sprintf("%%%02X",i);} #
c2p[" "]="'"$instead_of_spc"'"; #
for(i=48;i< 58;i++){c2p[sprintf("%c",i)]=sprintf("%c",i); } #
for(i=65;i< 91;i++){c2p[sprintf("%c",i)]=sprintf("%c",i); } #
for(i=97;i<123;i++){c2p[sprintf("%c",i)]=sprintf("%c",i); } #
c2p["-"]="-"; c2p["."]="."; c2p["_"]="_"; c2p["~"]="~"; #
595デフォルトの名無しさん
2020/10/15(木) 10:38:59.90ID:r6YkuFXF POSIX準拠コマンドの中で言語と言えるもの
(セミコロンや改行区切りで "複数の命令" を手続き的に実行できるものを言語としています)
awk - pattern scanning and processing language
bc - arbitrary-precision arithmetic language
ed - edit text
sed - stream editor
他にもあるかな?
bcは複数の命令を実行できるから言語だけど
exprは式を評価するだけだから違う
(セミコロンや改行区切りで "複数の命令" を手続き的に実行できるものを言語としています)
awk - pattern scanning and processing language
bc - arbitrary-precision arithmetic language
ed - edit text
sed - stream editor
他にもあるかな?
bcは複数の命令を実行できるから言語だけど
exprは式を評価するだけだから違う
596デフォルトの名無しさん
2020/10/15(木) 20:22:35.08ID:cNnx9G5T exを忘れちゃいけない
597デフォルトの名無しさん
2020/10/15(木) 22:29:33.58ID:BrsJS6s+ exでもできるん?
sedとか"s/a/b/"みたいに一行のコマンドを実行してるように見えるけど
実際には
s/a/b/
s/c/d/
みたいにsedスクリプトを実行できるわけだよね
sedは置換をベースとしたかなり独特な言語だけど
awkなんてBEGINで全部書いてしまえば
完全に普通のスクリプト言語になる
bcも実際はスクリプトを使って計算する
https://linux.die.net/man/1/bc の中間あたりにある例は
関数定義やif文while文も使っていて実は言語であることがわかると思う
まあ言いたいことは、シェルスクリプトからPythonやGoを呼び出していて
そこがメインで処理してるのがシェルスクリプトでないように
awkやsedでメインの処理を行ってるなら同様にそれもシェルスクリプトではない
sedとか"s/a/b/"みたいに一行のコマンドを実行してるように見えるけど
実際には
s/a/b/
s/c/d/
みたいにsedスクリプトを実行できるわけだよね
sedは置換をベースとしたかなり独特な言語だけど
awkなんてBEGINで全部書いてしまえば
完全に普通のスクリプト言語になる
bcも実際はスクリプトを使って計算する
https://linux.die.net/man/1/bc の中間あたりにある例は
関数定義やif文while文も使っていて実は言語であることがわかると思う
まあ言いたいことは、シェルスクリプトからPythonやGoを呼び出していて
そこがメインで処理してるのがシェルスクリプトでないように
awkやsedでメインの処理を行ってるなら同様にそれもシェルスクリプトではない
598デフォルトの名無しさん
2020/10/15(木) 22:51:46.33ID:rxPXHFq5 じゃCで書いてるコマンド呼び出したらシェルスクリプトじゃないね
599デフォルトの名無しさん
2020/10/15(木) 23:01:29.76ID:BrsJS6s+ >>598
そのとおりだよ
シェルスクリプトで階乗を行うコードを実装しましたと言っておきながら
C言語でコードを実装して、シェルスクリプトではそれを呼び出すだけなら
それはシェルスクリプトで実装したとは言えない
シェルスクリプトで実装というのなら、シェルスクリプトで
定義されているものだけを使って使って作らないといけない
例えば変数展開(を利用した文字列処理)や算術式展開を使った四則演算や
case文を使った文字列パターンマッチング処理で作る
外部コマンド呼び出しは(そのコマンドを自分で実装してないなら)
外部コマンドと組み合わせてシェルスクリプトで実装したと言えなくはないが
そもそもその外部コマンドがPythonやawkのような"別の言語"を使うものなら
そこから別の言語に切り替わっている
そのとおりだよ
シェルスクリプトで階乗を行うコードを実装しましたと言っておきながら
C言語でコードを実装して、シェルスクリプトではそれを呼び出すだけなら
それはシェルスクリプトで実装したとは言えない
シェルスクリプトで実装というのなら、シェルスクリプトで
定義されているものだけを使って使って作らないといけない
例えば変数展開(を利用した文字列処理)や算術式展開を使った四則演算や
case文を使った文字列パターンマッチング処理で作る
外部コマンド呼び出しは(そのコマンドを自分で実装してないなら)
外部コマンドと組み合わせてシェルスクリプトで実装したと言えなくはないが
そもそもその外部コマンドがPythonやawkのような"別の言語"を使うものなら
そこから別の言語に切り替わっている
600デフォルトの名無しさん
2020/10/15(木) 23:02:18.89ID:5H3UlTi7 イチャモンつけるならmakeがチューリング完全って話にまで火花が散るので、適当な落しどころは
POSIXに規定されておらず、それ自身が汎用プログラミング言語であることを目的として実装されたインタプリタやランタイムに対して、目的の処理を委譲しているのをシェルスクリプトだと表現されると気に食わない人が居る
くらいでいいでしょ
イチャモンつけるのも程々にしとかなきゃただ相手の意図を汲み取るつもりのない人間でしかなくなるぞ
POSIXに規定されておらず、それ自身が汎用プログラミング言語であることを目的として実装されたインタプリタやランタイムに対して、目的の処理を委譲しているのをシェルスクリプトだと表現されると気に食わない人が居る
くらいでいいでしょ
イチャモンつけるのも程々にしとかなきゃただ相手の意図を汲み取るつもりのない人間でしかなくなるぞ
601デフォルトの名無しさん
2020/10/15(木) 23:03:31.46ID:BrsJS6s+ >>600
厳密な境目を見つけたいんじゃなくて
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/awk.html
The awk utility shall execute programs written in the awk programming language,
awkユーティリティは、awkプログラミング言語で記述されたプログラムを実行します。
と書いてあるんだから、awkは「awkプログラミング言語」
厳密な境目を見つけたいんじゃなくて
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/awk.html
The awk utility shall execute programs written in the awk programming language,
awkユーティリティは、awkプログラミング言語で記述されたプログラムを実行します。
と書いてあるんだから、awkは「awkプログラミング言語」
602デフォルトの名無しさん
2020/10/15(木) 23:09:18.27ID:BrsJS6s+ make は内部的にシェルを呼び出してるので
GNU拡張は無視するとして、makeの範囲だけでなにか作れるんですかね?
GNU拡張を含むなら沢山の関数があるので
それらを使って作ったものは当然シェルスクリプトで実装したことにはならないですよ
GNU拡張は無視するとして、makeの範囲だけでなにか作れるんですかね?
GNU拡張を含むなら沢山の関数があるので
それらを使って作ったものは当然シェルスクリプトで実装したことにはならないですよ
603デフォルトの名無しさん
2020/10/15(木) 23:12:13.35ID:BrsJS6s+ あとイチャモンの内容は、Pythonで作ったものはシェルスクリプトではないのはそのとおりだけど
同じ用にawkで実装したものもシェルスクリプトではないんだから
awkで実装ばかりしてるお前(リッチー大佐)は自分のことを棚に上げてるwwwって言ってるだけ
同じ用にawkで実装したものもシェルスクリプトではないんだから
awkで実装ばかりしてるお前(リッチー大佐)は自分のことを棚に上げてるwwwって言ってるだけ
604デフォルトの名無しさん
2020/10/15(木) 23:22:09.05ID:9L6aMfZP ♪しぇまるー、ショッカー
605デフォルトの名無しさん
2020/10/16(金) 00:01:24.96ID:NkS9Y4UZ >>599
C言語でsystem()関数を使って、Bashを呼び出したら、シェルスクリプトだな!
C言語でsystem()関数を使って、Bashを呼び出したら、シェルスクリプトだな!
606デフォルトの名無しさん
2020/10/16(金) 00:18:33.05ID:V+ycHLUt607デフォルトの名無しさん
2020/10/16(金) 06:54:13.19ID:AxWc82uj >>603
だーからそういう揚げ足取りがしょーもないって話してんのが分からんかね
awkがプログラミング言語であるのは否定しない
ただ発端の話者はPOSIX狂いで有名な上awk多用してるんだから、対象のツイート中で言うプログラミング言語がPOSIXを除くものについての言及と考えれば辻褄は合うし、そう考えるのも突飛な発想と言うほどおかしくはないでしょ
確かにその人は語り口が横柄な事があるし好かれる性格キャラ作りはしてないさ
でも個人憎しでしょーもない揚げ足取りしてんのは同等かそれ以上につまんねーことしてんなって感じだよ
だーからそういう揚げ足取りがしょーもないって話してんのが分からんかね
awkがプログラミング言語であるのは否定しない
ただ発端の話者はPOSIX狂いで有名な上awk多用してるんだから、対象のツイート中で言うプログラミング言語がPOSIXを除くものについての言及と考えれば辻褄は合うし、そう考えるのも突飛な発想と言うほどおかしくはないでしょ
確かにその人は語り口が横柄な事があるし好かれる性格キャラ作りはしてないさ
でも個人憎しでしょーもない揚げ足取りしてんのは同等かそれ以上につまんねーことしてんなって感じだよ
608デフォルトの名無しさん
2020/10/16(金) 07:32:49.12ID:8MUyS0MS >>607
だから結論としては、awkはシェルスクリプトじゃないんだから
お前(しょっかー)もawk使ってるくせにシェルスクリプトって言ってるじゃん
ってことでしょ
それ以外になにか言うべきことあんの?
ないでしょ
それで話は終わりだよね
だから結論としては、awkはシェルスクリプトじゃないんだから
お前(しょっかー)もawk使ってるくせにシェルスクリプトって言ってるじゃん
ってことでしょ
それ以外になにか言うべきことあんの?
ないでしょ
それで話は終わりだよね
609デフォルトの名無しさん
2020/10/16(金) 07:49:02.57ID:AxWc82uj610デフォルトの名無しさん
2020/10/16(金) 07:50:20.39ID:hscjZ2ao611デフォルトの名無しさん
2020/10/16(金) 08:10:20.93ID:AxWc82uj612デフォルトの名無しさん
2020/10/16(金) 08:21:19.35ID:hscjZ2ao >>611
意図じゃなくてお前の願望だろw
awkは明らかにシェルスクリプトじゃないし
POSIX準拠のコマンドだけを使って作ったというのなら、そう言えばいいだけで
そう言わない理由はあるわけがないので、単にそのことを理解してないってだけ
それをお前はかばおうとしてるだけだろ
意図じゃなくてお前の願望だろw
awkは明らかにシェルスクリプトじゃないし
POSIX準拠のコマンドだけを使って作ったというのなら、そう言えばいいだけで
そう言わない理由はあるわけがないので、単にそのことを理解してないってだけ
それをお前はかばおうとしてるだけだろ
613デフォルトの名無しさん
2020/10/16(金) 08:47:26.97ID:AxWc82uj614デフォルトの名無しさん
2020/10/16(金) 09:11:10.47ID:095UBA8m 恥ずかしいよねw
自分がシェルスクリプトといいながら、awkで書いちゃってるのに
他に人にはPythonはシェルスクリプトじゃないと言っちゃってるわけだw
自分がシェルスクリプトといいながら、awkで書いちゃってるのに
他に人にはPythonはシェルスクリプトじゃないと言っちゃってるわけだw
615デフォルトの名無しさん
2020/10/16(金) 10:47:36.16ID:94/KGSru もう直接言いに行けよ、キモいレスするぐらいなら
616デフォルトの名無しさん
2020/10/16(金) 10:52:10.99ID:rggqlWcj >>614
awkやsedはシェルスクリプトの一部とみなす慣例は大昔からだから。
awkやsedはシェルスクリプトの一部とみなす慣例は大昔からだから。
617デフォルトの名無しさん
2020/10/16(金) 13:05:08.68ID:Sbv90d+P シェルスクリプトに混ぜて書く場面が多ければほぼシェルスクリプトのようなものと思ったって何の問題もない
618デフォルトの名無しさん
2020/10/16(金) 13:14:33.80ID:s+qbwWMb それはお前の願望ですよね?
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/awk.html
The awk utility shall execute programs written in the awk programming language,
awkユーティリティは、awkプログラミング言語で記述されたプログラムを実行します。
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/awk.html
The awk utility shall execute programs written in the awk programming language,
awkユーティリティは、awkプログラミング言語で記述されたプログラムを実行します。
619デフォルトの名無しさん
2020/10/16(金) 14:28:05.49ID:rggqlWcj >>618
そうだよ。UNIXでもそう説明される。ただし、実態は単独では使われない。
そうだよ。UNIXでもそう説明される。ただし、実態は単独では使われない。
620デフォルトの名無しさん
2020/10/16(金) 15:42:36.85ID:gWa/7c+R awkをシェルスクリプトと組み合わせて使っても
awk言語がシェルスクリプトに変わるわけがないって話ですよね?
いつから単独で使われるかどうかの話にすり替わったんですか?
awk言語がシェルスクリプトに変わるわけがないって話ですよね?
いつから単独で使われるかどうかの話にすり替わったんですか?
621デフォルトの名無しさん
2020/10/16(金) 16:33:59.64ID:rggqlWcj シェルスクリプトがシェルのスクリプトだとわかってない?
622デフォルトの名無しさん
2020/10/16(金) 16:36:29.14ID:j/dNEpw/ シェルのスクリプトから呼び出す
外部コマンド(awkやpython)が
シェルではないことぐらい知ってるよね
外部コマンド(awkやpython)が
シェルではないことぐらい知ってるよね
623デフォルトの名無しさん
2020/10/16(金) 16:39:41.36ID:rggqlWcj スクリプトの意味がわかっていない墓穴掘り書き込みですね。
624デフォルトの名無しさん
2020/10/16(金) 16:40:16.10ID:HABswBQ5 シェルのスクリプトはシェルが実行している
シェルとはdashとかbashとかzshのこと
そのスクリプトをシェルが実行していないなら
それはシェルスクリプトではない
シェルとはdashとかbashとかzshのこと
そのスクリプトをシェルが実行していないなら
それはシェルスクリプトではない
625デフォルトの名無しさん
2020/10/16(金) 16:41:33.85ID:JU6AgX+H >>623
いやぁ、そこは「スクリプトの今は○○だ!」って
お前が宣言するところだよ
宣言しちゃったら、間違ってたときに恥ずかしいから言えないんでしょ?
相手のミスを待つんじゃなくてさ、自分の意見を言ってみなよ
いやぁ、そこは「スクリプトの今は○○だ!」って
お前が宣言するところだよ
宣言しちゃったら、間違ってたときに恥ずかしいから言えないんでしょ?
相手のミスを待つんじゃなくてさ、自分の意見を言ってみなよ
626デフォルトの名無しさん
2020/10/16(金) 16:41:50.26ID:JU6AgX+H いやぁ、そこは「スクリプトの意味は○○だ!」って
627デフォルトの名無しさん
2020/10/16(金) 16:43:40.44ID:JU6AgX+H https://pubs.opengroup.org/onlinepubs/9699919799/utilities/awk.html
It was pointed out that with the rules contained in early drafts, the following 【script】 would print nothing:
BEGIN {
y[1.5] = 1
OFMT = "%e"
print y[1.5]
}
> the following 【script】 would print nothing:
It was pointed out that with the rules contained in early drafts, the following 【script】 would print nothing:
BEGIN {
y[1.5] = 1
OFMT = "%e"
print y[1.5]
}
> the following 【script】 would print nothing:
628デフォルトの名無しさん
2020/10/16(金) 16:53:32.17ID:JU6AgX+H629デフォルトの名無しさん
2020/10/16(金) 16:57:30.29ID:RKtFr9bS pythonのコードを描いてそれをログインシェルにしても良いんだぜ
630デフォルトの名無しさん
2020/10/16(金) 16:58:10.24ID:JU6AgX+H シェルスクリプトの話しかしてません
ログインシュルの話なんかしてません
ログインシュルの話なんかしてません
631デフォルトの名無しさん
2020/10/16(金) 17:01:13.72ID:RRnEM1bt ほらね
馬鹿がバレただろ?
馬鹿がバレただろ?
632デフォルトの名無しさん
2020/10/16(金) 17:02:24.56ID:JU6AgX+H ほらね
馬鹿がバレただろ?
※理由を言わないテクニック(笑)
馬鹿がバレただろ?
※理由を言わないテクニック(笑)
633デフォルトの名無しさん
2020/10/16(金) 17:32:16.72ID:Wq4ZK+I/ dashはダッシュ
bashならバッシュ
zshはなんと読む?
bashならバッシュ
zshはなんと読む?
634デフォルトの名無しさん
2020/10/16(金) 17:35:04.80ID:rggqlWcj オツシュ
635デフォルトの名無しさん
2020/10/16(金) 19:12:07.11ID:49KTAZqQ dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash
dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash
dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash
dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash
dash dash dash bash dash dash dash dash dash dash dash dash dash dash dash dash
dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash
dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash
dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash
dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash
dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash
dash dash dash bash dash dash dash dash dash dash dash dash dash dash dash dash
dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash
dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash dash
636デフォルトの名無しさん
2020/10/16(金) 20:45:17.03ID:QdYgfUXk ゼットシェル
637デフォルトの名無しさん
2020/10/16(金) 21:51:16.80ID:YwASt5fw zsh規制
638デフォルトの名無しさん
2020/10/17(土) 10:31:07.65ID:0qFIP5N2 ch
sch
tsch
sch
tsch
639デフォルトの名無しさん
2020/10/17(土) 16:56:16.43ID:1zxs+zPu foo() { echo $A; }
A=1
A=2 foo
echo $A
ってやった時、1行目に2が表示されると思ってる。
そして2行目には1が表示されると思ってたんだけど
dashだと2と表示される。これってバグ?
A=1
A=2 foo
echo $A
ってやった時、1行目に2が表示されると思ってる。
そして2行目には1が表示されると思ってたんだけど
dashだと2と表示される。これってバグ?
640デフォルトの名無しさん
2020/10/17(土) 16:59:33.10ID:sPQ7iLy+ 普通の挙動じゃない?なにがおかしいと思ってる?
641デフォルトの名無しさん
2020/10/17(土) 17:00:23.70ID:1zxs+zPu642デフォルトの名無しさん
2020/10/17(土) 17:16:48.26ID:oDONqj5W bashやzshが仕様通りだと思うけど
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_01
If the command name is not a special built-in utility or function, the variable assignments shall be exported for the execution environment of the command and shall not affect the current execution environment except as a side-effect of the expansions performed in step 4
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_01
If the command name is not a special built-in utility or function, the variable assignments shall be exported for the execution environment of the command and shall not affect the current execution environment except as a side-effect of the expansions performed in step 4
643デフォルトの名無しさん
2020/10/17(土) 17:17:04.79ID:1zxs+zPu そもそも変数に代入しつつコマンド実行って
POSIXで規程されてない?
POSIXで規程されてない?
644デフォルトの名無しさん
2020/10/17(土) 17:17:34.52ID:1zxs+zPu あ>>642を読む前に書き込んだ。今から見てみる。
645デフォルトの名無しさん
2020/10/17(土) 17:22:47.37ID:1zxs+zPu >>642
これは?
If the command name is a function that is not a standard utility implemented as a function, variable assignments shall affect the current execution environment during the execution of the function. It is unspecified:
Whether or not the variable assignments persist after the completion of the function
Whether or not the variables gain the export attribute during the execution of the function
Whether or not export attributes gained as a result of the variable assignments persist after the completion of the function (if variable assignments persist after the completion of the function)
これは?
If the command name is a function that is not a standard utility implemented as a function, variable assignments shall affect the current execution environment during the execution of the function. It is unspecified:
Whether or not the variable assignments persist after the completion of the function
Whether or not the variables gain the export attribute during the execution of the function
Whether or not export attributes gained as a result of the variable assignments persist after the completion of the function (if variable assignments persist after the completion of the function)
646デフォルトの名無しさん
2020/10/17(土) 17:26:44.95ID:oDONqj5W >>645
あー、関数だからそっちだね
あー、関数だからそっちだね
647デフォルトの名無しさん
2020/10/17(土) 17:35:03.05ID:1zxs+zPu なんでこんなに複雑なんだ・・・
648デフォルトの名無しさん
2020/10/18(日) 00:40:25.10ID:ngGOxfYz649デフォルトの名無しさん
2020/10/18(日) 01:14:29.68ID:u/6+iFla なんで?
650デフォルトの名無しさん
2020/10/19(月) 05:17:03.52ID:8QFJcUQW for music in `cat $OUT`; do
のようなループを書いている
1行ごとに仕事をさせたいのだが
1行の中には空白があり、1行の要素が分断されている
どうすれば分断を防げるだろう?
のようなループを書いている
1行ごとに仕事をさせたいのだが
1行の中には空白があり、1行の要素が分断されている
どうすれば分断を防げるだろう?
651デフォルトの名無しさん
2020/10/19(月) 09:45:54.95ID:4EZdKnY4 while read
652デフォルトの名無しさん
2020/10/19(月) 10:00:20.18ID:8QFJcUQW thanks
653デフォルトの名無しさん
2020/10/25(日) 20:39:06.02ID:/pMQZumA tputってさどこまでがPOSIX準拠なの?
色はPOSIX準拠じゃないでしょ?
色はPOSIX準拠じゃないでしょ?
654デフォルトの名無しさん
2020/10/26(月) 04:13:51.20ID:tssW3pbf UNIX系で端末管理はどうやってるのか学べ
655デフォルトの名無しさん
2020/10/26(月) 16:46:36.36ID:4vMqqkwn AWKがシェルスクリプトに含まれるかどうかは
(定義不十分だし)勝手に議論しとけと思うけど,
GNU・BSD拡張を使っていないAWKで何か実装した場合それは
「POSIXに準拠している」と言えるわな。
だから「シェルスクリプトで〜」と言わずに
「POSIXに準拠したやりかたで〜」と言っておけば,
くだらない揚げ足取られずに済んだ訳だ。
時すでにお寿司🍣
(定義不十分だし)勝手に議論しとけと思うけど,
GNU・BSD拡張を使っていないAWKで何か実装した場合それは
「POSIXに準拠している」と言えるわな。
だから「シェルスクリプトで〜」と言わずに
「POSIXに準拠したやりかたで〜」と言っておけば,
くだらない揚げ足取られずに済んだ訳だ。
時すでにお寿司🍣
656デフォルトの名無しさん
2020/10/26(月) 23:22:51.04ID:2CuyKjNX >>655
あの人は何でもシェルスクリプトでできるって思っちゃってる人だから無理でしょ
POSIXと言いながら、C言語メインとかにはならない
1. シェルスクリプトでやるのがいい (基本)
2. できない? POSIXならC言語とか使ってもOKなんだよ!
POSIXは、シェルスクリプトではなできない事の言い訳として利用してるだけ
だからawkで作ってるのにシェルスクリプトだと言いはる
あの人は何でもシェルスクリプトでできるって思っちゃってる人だから無理でしょ
POSIXと言いながら、C言語メインとかにはならない
1. シェルスクリプトでやるのがいい (基本)
2. できない? POSIXならC言語とか使ってもOKなんだよ!
POSIXは、シェルスクリプトではなできない事の言い訳として利用してるだけ
だからawkで作ってるのにシェルスクリプトだと言いはる
657デフォルトの名無しさん
2020/10/27(火) 07:49:33.18ID:rn8NuyuD C言語使ってって小さなフィルタープログラムをだろ
既存でないフィルターは自分で作るというある意味シェルスクリプトの本道でもあるだろう
既存でないフィルターは自分で作るというある意味シェルスクリプトの本道でもあるだろう
658デフォルトの名無しさん
2020/10/27(火) 08:25:50.66ID:u8IX9f6Z >>657
シェルスクリプトってまさにこの
「C言語で書いた早くて小さいプログラム」
を組み合わせる為の言語だと思ってる。
もちろんシェルスクリプトの制御機構は計算完備なので
シェルとしての機能だけでプログラムを書くこともできるけど,
Unix哲学≠ノ従うならそれはちょっと違うんじゃないかと思う。
シェルスクリプトで完結する人ってUnix哲学をやたら推すし,
Unix哲学自体は今でもある程度参考になるとは思うけど,
ほんとうにUnixらしいやりかたは
「主処理はC言語で書いて組み合わせはシェル」っていうことだと思う。
シェルスクリプトってまさにこの
「C言語で書いた早くて小さいプログラム」
を組み合わせる為の言語だと思ってる。
もちろんシェルスクリプトの制御機構は計算完備なので
シェルとしての機能だけでプログラムを書くこともできるけど,
Unix哲学≠ノ従うならそれはちょっと違うんじゃないかと思う。
シェルスクリプトで完結する人ってUnix哲学をやたら推すし,
Unix哲学自体は今でもある程度参考になるとは思うけど,
ほんとうにUnixらしいやりかたは
「主処理はC言語で書いて組み合わせはシェル」っていうことだと思う。
659デフォルトの名無しさん
2020/10/27(火) 09:36:02.25ID:NxyNpTjA 自分の中でのシェルスクリプトって
新たにプログラムを位置から作るんじゃなくて
既存のコマンドを使って繋ぎ合わせて
間に合わせのプログラムを作るものだと思ってる
自分はプログラミングできるから普通にプログラム書けるけど
コンパイルとかの煩雑な手順を考えると
シェルスクリプトをぱっと書いてすぐ使えるってのはすごい手軽
パイプ処理が肝かなと思ってる
新たにプログラムを位置から作るんじゃなくて
既存のコマンドを使って繋ぎ合わせて
間に合わせのプログラムを作るものだと思ってる
自分はプログラミングできるから普通にプログラム書けるけど
コンパイルとかの煩雑な手順を考えると
シェルスクリプトをぱっと書いてすぐ使えるってのはすごい手軽
パイプ処理が肝かなと思ってる
660デフォルトの名無しさん
2020/10/27(火) 10:23:30.49ID:nSGvpwuJ >>658
シェルスクリプトをシェルスクリプトで完結する必要はない。
例えば、C言語で作った何かや「awkで作ったなにか」を呼び出すのもあり
それは当然の話だし、否定していない
言いたいことは、それは「awkで作ったなにか」であって
シェルスクリプトではないということだけ
みとめよう。それはawkプログラミングだ
シェルスクリプトをシェルスクリプトで完結する必要はない。
例えば、C言語で作った何かや「awkで作ったなにか」を呼び出すのもあり
それは当然の話だし、否定していない
言いたいことは、それは「awkで作ったなにか」であって
シェルスクリプトではないということだけ
みとめよう。それはawkプログラミングだ
661デフォルトの名無しさん
2020/10/27(火) 10:29:52.20ID:nSGvpwuJ シェルスクリプトで外部コマンドを呼び出すのはありだし
全ての環境で動かすならPOSIX準拠にしろと思うが
POSIX準拠にこだわる必要もない
例えば、dockerやgitはPOSIX準拠ではないコマンドだ
POSIX至上主義かなにかしらんが、シェルスクリプトから
使っていいのはPOSIX準拠コマンドだけだというのなら
dockerやgitすら使えないということになる
んなばかな(笑)
環境が限定される(つまりdockerやgitが入っていること)という前提で
シェルスクリプトでPOSIX準拠ではないコマンドは普通に使う
つまり何が言いたいかと言うと、シェルスクリプトで読みやすさのために長いオプションを使えという話だ
長いオプションはPOSIX準拠ではないからショートオプションを使え?アホか
どちらにしろPOSIX準拠でないコマンドを使うのだ
全ての環境で動かすならPOSIX準拠にしろと思うが
POSIX準拠にこだわる必要もない
例えば、dockerやgitはPOSIX準拠ではないコマンドだ
POSIX至上主義かなにかしらんが、シェルスクリプトから
使っていいのはPOSIX準拠コマンドだけだというのなら
dockerやgitすら使えないということになる
んなばかな(笑)
環境が限定される(つまりdockerやgitが入っていること)という前提で
シェルスクリプトでPOSIX準拠ではないコマンドは普通に使う
つまり何が言いたいかと言うと、シェルスクリプトで読みやすさのために長いオプションを使えという話だ
長いオプションはPOSIX準拠ではないからショートオプションを使え?アホか
どちらにしろPOSIX準拠でないコマンドを使うのだ
662デフォルトの名無しさん
2020/10/27(火) 11:22:58.65ID:B6tDM1Ic663デフォルトの名無しさん
2020/10/27(火) 11:36:52.21ID:nSGvpwuJ "既存プログラム"を組み合わせるのはUnixらしいが
新しいコマンドを作って組み合わせて使うユニケージはUnixらしくない
しかもそのコマンドが完全に特殊用途向けのコマンドであり
Unixでいうシェルスクリプトにはまったくもって応用できない
今、ユニケージ開発手法にギークが熱狂するワケ【USP研究所代表&オープンソースOSコミッター対談】
【PR】2020.09.25
https://type.jp/et/feature/14070/
はは、クソ開発手法だ。ギークのだーれも熱狂してねーよ
せめてマニアとかオタクとかいえ、ギークと言ったら海外用語だ
海外に進出してないユニケージが熱狂とか嘘作んじゃねーよ
新しいコマンドを作って組み合わせて使うユニケージはUnixらしくない
しかもそのコマンドが完全に特殊用途向けのコマンドであり
Unixでいうシェルスクリプトにはまったくもって応用できない
今、ユニケージ開発手法にギークが熱狂するワケ【USP研究所代表&オープンソースOSコミッター対談】
【PR】2020.09.25
https://type.jp/et/feature/14070/
はは、クソ開発手法だ。ギークのだーれも熱狂してねーよ
せめてマニアとかオタクとかいえ、ギークと言ったら海外用語だ
海外に進出してないユニケージが熱狂とか嘘作んじゃねーよ
664デフォルトの名無しさん
2020/10/27(火) 12:20:04.79ID:IzIv2i9p Power-Shell は unix らしさの極みか?
漏れはそうは思わんが
漏れはそうは思わんが
665デフォルトの名無しさん
2020/10/27(火) 12:30:26.45ID:eXfPuMud Power-Shell は反Unixだろ
そもそもWindowsにはまともなコマンドがないから
コマンドの連携ということがしづらい
あっても、正常終了時に「処理が完了しました」とかでて連携ができない
あれはコマンドを連携させずに、ただ並べるだけ
そういう世界だからシェルだけ改良しても意味がない
Unixでいうコマンド相当のものが必要
それが.NET framework。しかし.NET frameworkはAPI
APIだから普段CLIから実行するものではないし
コマンドとして使うのは面倒
Power-Shellはシェルスクリプトとしての特徴と
メリットである簡潔さが失われた「普通の言語」に相当する
そもそもWindowsにはまともなコマンドがないから
コマンドの連携ということがしづらい
あっても、正常終了時に「処理が完了しました」とかでて連携ができない
あれはコマンドを連携させずに、ただ並べるだけ
そういう世界だからシェルだけ改良しても意味がない
Unixでいうコマンド相当のものが必要
それが.NET framework。しかし.NET frameworkはAPI
APIだから普段CLIから実行するものではないし
コマンドとして使うのは面倒
Power-Shellはシェルスクリプトとしての特徴と
メリットである簡潔さが失われた「普通の言語」に相当する
666デフォルトの名無しさん
2020/10/27(火) 18:52:31.21ID:B6tDM1Ic >>665
PowerShellを使ったことがないだろ?w
ヘンにハイフンを入れたりしてるしな。
コマンドによってはちゃんとオブジェクトを返すし、パイプで処理することもできる。
.NETを直接実行することもできるし、テキストベースでしかないUnixシェルよりも使いやすいこともある。
「反Unix」というよりは、それを越えたところもあるWindowsらしいシェルと言える。
ただ、いつまでどのようにサポートされるのか、最近はちょっと不安。。。
poshとのかねあいとか。
PowerShellを使ったことがないだろ?w
ヘンにハイフンを入れたりしてるしな。
コマンドによってはちゃんとオブジェクトを返すし、パイプで処理することもできる。
.NETを直接実行することもできるし、テキストベースでしかないUnixシェルよりも使いやすいこともある。
「反Unix」というよりは、それを越えたところもあるWindowsらしいシェルと言える。
ただ、いつまでどのようにサポートされるのか、最近はちょっと不安。。。
poshとのかねあいとか。
667デフォルトの名無しさん
2020/10/27(火) 18:54:44.28ID:a7WAgl/q フィルターは、Ruby で作る
Linux のPowerShell は、Azure しか使われていないだろ?
Linux のPowerShell は、Azure しか使われていないだろ?
668デフォルトの名無しさん
2020/10/27(火) 20:43:43.48ID:gFMGawtc669デフォルトの名無しさん
2020/10/27(火) 22:01:39.01ID:7WqSRFWS スペースがあると誤解しているのと、スペースをハイフンに置き換える習慣があるジジイの命名
670デフォルトの名無しさん
2020/10/27(火) 22:32:46.87ID:B6tDM1Ic671デフォルトの名無しさん
2020/10/28(水) 02:15:01.01ID:TQndZTJN >>670
PowerShellで作ったプログラムをオプソで公開してるがなにか?
PowerShellで作ったプログラムをオプソで公開してるがなにか?
672デフォルトの名無しさん
2020/10/28(水) 06:49:20.54ID:Df2NTJPb オプソってなに?
673デフォルトの名無しさん
2020/10/28(水) 08:15:00.68ID:zcWN9+mU Open source
674デフォルトの名無しさん
2020/10/28(水) 13:27:15.30ID:l3R5yM/w675デフォルトの名無しさん
2020/10/28(水) 17:48:34.37ID:QWPlcBUD これだけマルチコアになった今日び、コマンドの方も対応して欲しい気がする。
ファイル圧縮のコマンドとか、マルチスレッドで処理したら速くできるはず。
あるいはどこまでもマルチプロセス主義でいくというなら... 例えば並列パイプ? というか
今のパイプだとデータフローが一本道だがこれを並列に分散して走らせて最後データを
一本にまとめるような処理の仕組みがあってもいいのではないかと。
ちなみに一本道は「いっぽんみち」で「いっぽんどう」ではないからな、って聞いてないか
ファイル圧縮のコマンドとか、マルチスレッドで処理したら速くできるはず。
あるいはどこまでもマルチプロセス主義でいくというなら... 例えば並列パイプ? というか
今のパイプだとデータフローが一本道だがこれを並列に分散して走らせて最後データを
一本にまとめるような処理の仕組みがあってもいいのではないかと。
ちなみに一本道は「いっぽんみち」で「いっぽんどう」ではないからな、って聞いてないか
676デフォルトの名無しさん
2020/10/28(水) 19:10:42.29ID:Aw3ALjki 例えるならxargs
677デフォルトの名無しさん
2020/10/28(水) 19:52:02.68ID:vhMFXsQD パイプで繋げば自動でマルチになるではないか
678デフォルトの名無しさん
2020/10/28(水) 20:17:48.21ID:FddMFcrq あまりわかってなさそだな>>675は
並列パイプとかも簡単に言ってそう
並列パイプとかも簡単に言ってそう
679デフォルトの名無しさん
2020/10/28(水) 20:18:18.79ID:NAroBJuS 最期に一本にまとめるというのならGNU parallelやろ?
バックグラウンドプロセスを使って自分でまとめてもいいが
バックグラウンドプロセスを使って自分でまとめてもいいが
680デフォルトの名無しさん
2020/10/28(水) 20:22:18.78ID:zcWN9+mU パイプって元々非同期処理(これはPOSIXで規定)だから,
実装によっては普通にマルチスレッドで処理してんじゃないの?
実装によっては普通にマルチスレッドで処理してんじゃないの?
681デフォルトの名無しさん
2020/10/28(水) 20:22:22.24ID:58wSuA1P そもそもUnixにはforkというコマンドがあってだな
682デフォルトの名無しさん
2020/10/28(水) 20:23:15.77ID:XBU5yUok ターミナルを2枚開いてマルチプロセス!
683デフォルトの名無しさん
2020/10/28(水) 20:32:27.18ID:NAroBJuS 多くの言語が並列処理を行うように明示的に書かなければ並列処理されないのに比べて
シェルスクリプトは普通に書いてもかってに並列処理が行われる言語の1つ
シェルスクリプトは普通に書いてもかってに並列処理が行われる言語の1つ
684デフォルトの名無しさん
2020/10/28(水) 21:19:48.83ID:zcWN9+mU685デフォルトの名無しさん
2020/10/28(水) 21:48:39.39ID:K6dD4VVC >>683,684
お前らもプロセスとスレッドの違いがわかってないようだがな
お前らもプロセスとスレッドの違いがわかってないようだがな
686デフォルトの名無しさん
2020/10/28(水) 22:22:18.44ID:1fF6N90I >>685
わかってるが、何を根拠にいちゃもんつけたの?w
わかってるが、何を根拠にいちゃもんつけたの?w
687デフォルトの名無しさん
2020/10/28(水) 22:37:57.46ID:K6dD4VVC お前はどっちなの?
まだ ID:NAroBJuS ならそうわかってはないようでもあるが、ID:zcWN9+mU は明らかにわかってないなw
まだ ID:NAroBJuS ならそうわかってはないようでもあるが、ID:zcWN9+mU は明らかにわかってないなw
688デフォルトの名無しさん
2020/10/28(水) 22:42:56.15ID:1fF6N90I 質問を質問で返すな
まずお前が根拠をいえ
言わないで質問する理由なんかないだろ
まずお前が根拠をいえ
言わないで質問する理由なんかないだろ
689デフォルトの名無しさん
2020/10/28(水) 22:43:30.54ID:l3R5yM/w まあ、>>680の「マルチスレッド」はおかしいな。
言うなら「マルチタスク」とかやろ。
言うなら「マルチタスク」とかやろ。
690デフォルトの名無しさん
2020/10/28(水) 22:45:28.30ID:K6dD4VVC どっちなのかも言えないのか。後者だろなな
691デフォルトの名無しさん
2020/10/28(水) 22:47:04.72ID:1fF6N90I 前者だが?はい、言いましたーw
次はお前の番だが、ここまでやっておいて
お前は答えられないってことはないよな
次はお前の番だが、ここまでやっておいて
お前は答えられないってことはないよな
692デフォルトの名無しさん
2020/10/28(水) 22:54:11.38ID:K6dD4VVC■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【中国】日本のアニソン歌唱中に強制中断 上海、照明落とされ音楽止まる★3 [♪♪♪★]
- 2025/11/29(土) 17:45:26.27 ID:z7W38XEQ0<> <a href="../test/read.cgi/newsplus/1764400793/420" rel="noopener noreferrer" target="_blank">>>420</a> <br> それ以外は何も止められてないならイオンも当然何の問題も無い <>
- 【地方】「もうヤメとけ、また移住者様が帰っちゃうぞ」田舎の「いじめ体質」★2 [七波羅探題★]
- アミューズが同性婚訴訟への声明を発表「誰もが良く生きられる自由」を目指す、東京高裁の判決を受け [muffin★]
- 【サッカー】J2第38節 水戸がJ2初優勝!長崎は2位でJ1自動昇格!千葉は大量得点もPOへ [久太郎★]
- 「まだ朝7時に通勤してるんですか?」にじさんじVTuberがXの投稿で炎上、YouTubeで釈明と謝罪 [muffin★]
- 他サポ2025-276
- 【なでしこ】女子サッカーMS&ADカップ2025 日本vsカナダ
- ジェフユナイテッド千葉実況 vs 今治
- こいせん 全レス転載禁止
- ジュビロ磐田を応援するにぃ~ vs 鳥栖 part2
- 【DAZN/ABEMA】ブンデスリーガ・DFBポカール★6
- 【実況】博衣こよりのえちえちスターセイヴァー🧪
- 【速報】新決済「東京pay」、全員に11,000ポイント付与wwwwwwwwwwwwwwwwwwww [329329848]
- 寒くなってきたな
- 【速報】女子中学生のテストの点数、流出してしまうww [347751896]
- 松本人志、限界か…😰 [153490809]
- 鈴木農相「お米券でパスタやお菓子も買えるようにします☺」・・・???😰 [931948549]
