シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
・「POSIX原理主義」「ユニケージ」「USP研究所」はPOSIXとUnixを曲解し
間違ったシェルスクリプトを広めている宗教です。洗脳されないようにしてください。
前スレ: シェルスクリプト総合 その36
https://mevius.5ch.net/test/read.cgi/tech/1614212414/
関連スレ
・【Bash】Windows Subsystem for Linux【WSL】11
https://mao.5ch.net/test/read.cgi/linux/1627507889/
・Bashでプログラミング [転載禁止](c)2ch.net
https://mao.5ch.net/test/read.cgi/linux/1443885102/
・シェルスクリプト総合 その28
https://mevius.5ch.net/test/read.cgi/unix/1533154936/
・zsh その7
https://mevius.5ch.net/test/read.cgi/unix/1337844883/
・過去UNIXで使われていた ksh というシェルについて
https://mevius.5ch.net/test/read.cgi/unix/1582358403/
・【POSIX】UNIXプログラミング【BSD】 [転載禁止](c)2ch.net
https://mevius.5ch.net/test/read.cgi/unix/1443103705/
・おまえら! shell は何を使っているんですか?
https://mevius.5ch.net/test/read.cgi/unix/1012330865/
シェルスクリプト総合 その37
■ このスレッドは過去ログ倉庫に格納されています
2021/10/05(火) 22:49:30.91ID:KsbWuyFp
174デフォルトの名無しさん
2021/10/17(日) 07:02:09.17ID:evqBS6BP >>171
えと、本気で理解できないんだが詳しく教えてもらえないでしょうか。
えと、本気で理解できないんだが詳しく教えてもらえないでしょうか。
175デフォルトの名無しさん
2021/10/17(日) 10:23:03.90ID:8eKBj5MQ176デフォルトの名無しさん
2021/10/17(日) 11:00:47.95ID:DWmfIprR177デフォルトの名無しさん
2021/10/17(日) 11:07:01.52ID:DWmfIprR178デフォルトの名無しさん
2021/10/17(日) 12:11:19.76ID:evqBS6BP >>175
どこにってのは、どの項目かよく見ろと暗に示してるのかな?
sh
https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/utilities/sh.html
EXIT STATUS
The following exit values shall be returned:
0
The script to be executed consisted solely of zero or more blank lines or comments, or both.
1-125
A non-interactive shell detected an error other than command_file not found or executable, including but not limited to syntax, redirection, or variable assignment errors.
126
A specified command_file could not be executed due to an [ENOEXEC] error (see Command Search and Execution, item 2).
127
A specified command_file could not be found by a non-interactive shell.
test
https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/utilities/test.html
EXIT STATUS
The following exit values shall be returned:
0
expression evaluated to true.
1
expression evaluated to false or expression was missing.
>1
An error occurred.
>>177
理解しました。
どこにってのは、どの項目かよく見ろと暗に示してるのかな?
sh
https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/utilities/sh.html
EXIT STATUS
The following exit values shall be returned:
0
The script to be executed consisted solely of zero or more blank lines or comments, or both.
1-125
A non-interactive shell detected an error other than command_file not found or executable, including but not limited to syntax, redirection, or variable assignment errors.
126
A specified command_file could not be executed due to an [ENOEXEC] error (see Command Search and Execution, item 2).
127
A specified command_file could not be found by a non-interactive shell.
test
https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/utilities/test.html
EXIT STATUS
The following exit values shall be returned:
0
expression evaluated to true.
1
expression evaluated to false or expression was missing.
>1
An error occurred.
>>177
理解しました。
179デフォルトの名無しさん
2021/10/17(日) 13:22:52.78ID:4nH2b59z180デフォルトの名無しさん
2021/10/17(日) 14:36:53.55ID:7C23oe5i181デフォルトの名無しさん
2021/10/17(日) 14:38:28.76ID:7C23oe5i182デフォルトの名無しさん
2021/10/17(日) 14:50:31.56ID:VtgDJrjp >>177
ture/false コマンドに(Exit Status) 0 および1を返すと書いてある
testコマンドに評価としてtrueとは書いてあるが、それは評価としてでその値が1なのか0なのかというのではないという理解だけど
POSIXに書いてあるという話なら
ture/false コマンドに(Exit Status) 0 および1を返すと書いてある
testコマンドに評価としてtrueとは書いてあるが、それは評価としてでその値が1なのか0なのかというのではないという理解だけど
POSIXに書いてあるという話なら
183デフォルトの名無しさん
2021/10/17(日) 15:28:23.08ID:N+Nl+RmC ぱっと流れを見てきただけだが、
[]/test コマンドの評価が真で0を返すってところからはじまって、
他のコマンドの返り値もこれにならって処理成功で0を返すようになったというだけじゃないの?
これをもって終了ステータス0が真を意味するってわけじゃないよねぇ
日本語と英語で、否定文に対する同意にyes/noが反対になるのと似てると思う
前者は否定文それ自体、後者は事象全体について、それぞれ評価してるよね
[]/test コマンドの評価が真で0を返すってところからはじまって、
他のコマンドの返り値もこれにならって処理成功で0を返すようになったというだけじゃないの?
これをもって終了ステータス0が真を意味するってわけじゃないよねぇ
日本語と英語で、否定文に対する同意にyes/noが反対になるのと似てると思う
前者は否定文それ自体、後者は事象全体について、それぞれ評価してるよね
184デフォルトの名無しさん
2021/10/17(日) 15:57:56.52ID:VtgDJrjp >>177
trueコマンドのExit Statusは0、falseコマンドのExit Statusは1
評価した結果trueならExit Statusは0、falseならExit Statusは1
てことででの、trueは0、falseは1 (のExit Status) になるでしょ??
testコマンド(など)で書いてるtrueは一般的な文上でのtrue(例えばtest条件に一致する=真)と読んでるけどなあ
って、よく読んだら同じこと言ってるのか。シェル内部(?)の部分の話かそれ>>177は
Exit Status が 0だったらtrue、1だったらfalse と評価されることは正しいが
(ここはわかる)
trueは0、falseは1(の値をあらわすこと)は正しくない
(言いたいことはなんとなくわかるしだったら否定はしないが、うーむ)
>>171は、
>終了ステータスは、
から始まってるとおり(上にも書いたけど)、
trueは0、falseは1は正しいが (そういうExit Statusになる)
だからといって、
シェルスクリプト上で 0はtrue、1はfalse(と見なすのは)正しくない
てこと。下は「trueは0、falseは1(の値をあらわすこと)は正しくない」と同じ意味だわな
trueコマンドのExit Statusは0、falseコマンドのExit Statusは1
評価した結果trueならExit Statusは0、falseならExit Statusは1
てことででの、trueは0、falseは1 (のExit Status) になるでしょ??
testコマンド(など)で書いてるtrueは一般的な文上でのtrue(例えばtest条件に一致する=真)と読んでるけどなあ
って、よく読んだら同じこと言ってるのか。シェル内部(?)の部分の話かそれ>>177は
Exit Status が 0だったらtrue、1だったらfalse と評価されることは正しいが
(ここはわかる)
trueは0、falseは1(の値をあらわすこと)は正しくない
(言いたいことはなんとなくわかるしだったら否定はしないが、うーむ)
>>171は、
>終了ステータスは、
から始まってるとおり(上にも書いたけど)、
trueは0、falseは1は正しいが (そういうExit Statusになる)
だからといって、
シェルスクリプト上で 0はtrue、1はfalse(と見なすのは)正しくない
てこと。下は「trueは0、falseは1(の値をあらわすこと)は正しくない」と同じ意味だわな
185デフォルトの名無しさん
2021/10/17(日) 16:08:04.69ID:VtgDJrjp >>183
>[]/test コマンドの評価が真で0を返すってところからはじまって、
>他のコマンドの返り値もこれにならって処理成功で0を返すようになったというだけじゃないの?
Unixで動くプログラムはExit Statusが問題なければ 0、問題あればそれ以外というとこからはじまってかな。testコマンドもそれに合わせてのような
Unixを作る上でのOSのUnixとしてのExit Statusとはどういうものかというのは最も先に考えるだろうから、そこからはじまってかな
>[]/test コマンドの評価が真で0を返すってところからはじまって、
>他のコマンドの返り値もこれにならって処理成功で0を返すようになったというだけじゃないの?
Unixで動くプログラムはExit Statusが問題なければ 0、問題あればそれ以外というとこからはじまってかな。testコマンドもそれに合わせてのような
Unixを作る上でのOSのUnixとしてのExit Statusとはどういうものかというのは最も先に考えるだろうから、そこからはじまってかな
186デフォルトの名無しさん
2021/10/17(日) 16:26:50.30ID:gRTtAvmG いまでも 0〜255 なんですか
256 以上とか
0 未満とか
ありえないんですか?
256 以上とか
0 未満とか
ありえないんですか?
187デフォルトの名無しさん
2021/10/17(日) 16:36:48.76ID:VtgDJrjp 8ビットいっぱいでの値(=unsigned char)となってるね、POSIXでは
int main( ... ) だから、失敗なんぞで -1 をreturn できる(エラーにはならない)が、255になったりするねえ
int main( ... ) だから、失敗なんぞで -1 をreturn できる(エラーにはならない)が、255になったりするねえ
188デフォルトの名無しさん
2021/10/17(日) 16:50:37.61ID:8eKBj5MQ ん?まさか、trueコマンドとfalseコマンドを
真偽値のtrue/falseのことだって勘違いしてる?
いやそんなアホはいないよねw
終了ステータスは数値であって
true/falseじゃないよ
はっきりした
真偽値のtrue/falseのことだって勘違いしてる?
いやそんなアホはいないよねw
終了ステータスは数値であって
true/falseじゃないよ
はっきりした
189デフォルトの名無しさん
2021/10/17(日) 16:59:10.58ID:VtgDJrjp ただの独りよがり、マウントだけは取りたがり
まあわかったようなのでいいけど
まあわかったようなのでいいけど
190デフォルトの名無しさん
2021/10/17(日) 17:35:18.24ID:8eKBj5MQ >>183
終了ステータスは昔から0が正常終了、それ以外が異常終了という意味
シェルスクリプトのifは正常終了の場合にthenの中身を実行する
それだけの話なのに真とか偽とか、trueとかfalseとか
言ってるやつがいるだけ
trueコマンドは正常終了を返す
fasleコマンドは異常終了を返す
ifは正常終了か異常終了かで処理を分岐させるもので
真か偽かで処理を分岐させるものではない
終了ステータスは昔から0が正常終了、それ以外が異常終了という意味
シェルスクリプトのifは正常終了の場合にthenの中身を実行する
それだけの話なのに真とか偽とか、trueとかfalseとか
言ってるやつがいるだけ
trueコマンドは正常終了を返す
fasleコマンドは異常終了を返す
ifは正常終了か異常終了かで処理を分岐させるもので
真か偽かで処理を分岐させるものではない
191デフォルトの名無しさん
2021/10/17(日) 17:37:48.32ID:VtgDJrjp192デフォルトの名無しさん
2021/10/17(日) 17:41:45.55ID:8eKBj5MQ 反論がないなら黙っとれ
193デフォルトの名無しさん
2021/10/17(日) 17:48:01.87ID:VtgDJrjp 誰とは言わんがw某君は自分で調べることも探すこともできないは明らかだが、
そこからくる無知がコンプレックスからなんだろうなその常時上から目線すぐに誤魔化す癖なのは
と思われるw
そこからくる無知がコンプレックスからなんだろうなその常時上から目線すぐに誤魔化す癖なのは
と思われるw
194デフォルトの名無しさん
2021/10/17(日) 19:16:51.89ID:evqBS6BP >>190
例えばカーニハン、ロブパイク共著のTHE UNIX PROGRAMMING ENVIRONMENT のp140のif構文の説明には
if command
then
commands if condition true
else
command if condition false
do
と書かれている。P145のwhile untilの説明にもtrueとfalseが使われている。
あなたの言いたい事は分かる、というかみんなわかってる。ただ、昔からの習慣をぶった切って何が得なのか分からない。
例えばカーニハン、ロブパイク共著のTHE UNIX PROGRAMMING ENVIRONMENT のp140のif構文の説明には
if command
then
commands if condition true
else
command if condition false
do
と書かれている。P145のwhile untilの説明にもtrueとfalseが使われている。
あなたの言いたい事は分かる、というかみんなわかってる。ただ、昔からの習慣をぶった切って何が得なのか分からない。
195デフォルトの名無しさん
2021/10/17(日) 19:34:34.14ID:8eKBj5MQ 「条件が真」というのは真偽値とは別の話だよ
条件とセットになってないといけない
何が真かどうかは条件文つまりコマンドによって変わる
値だけをみて真かどうかなんてわからない
条件とセットになってないといけない
何が真かどうかは条件文つまりコマンドによって変わる
値だけをみて真かどうかなんてわからない
196デフォルトの名無しさん
2021/10/17(日) 19:37:39.52ID:8eKBj5MQ 例えばexprという条件文は、1(0以外)が真で、0が偽
testという条件文は、文字列の長さがあれば真で、空文字なら偽
だからtestの場合は0も1も真だし、testの演算子を使えば、それに応じて結果も変わる
どの値が真か偽かなんてわからない
少なくともexprでは0は偽
testという条件文は、文字列の長さがあれば真で、空文字なら偽
だからtestの場合は0も1も真だし、testの演算子を使えば、それに応じて結果も変わる
どの値が真か偽かなんてわからない
少なくともexprでは0は偽
197デフォルトの名無しさん
2021/10/17(日) 21:21:40.04ID:evqBS6BP >>195-196
つまりスクリプトの文脈や使うコマンドに依存するって事ですよね。それは誰でも知っている。
全てに共通では無いからと言ってif文の話の時ですらtrue falseと言う言い方、表現を認めないと言うのはそれこそ文脈無視。何でそこまでtrue falseを否定するの?
つまりスクリプトの文脈や使うコマンドに依存するって事ですよね。それは誰でも知っている。
全てに共通では無いからと言ってif文の話の時ですらtrue falseと言う言い方、表現を認めないと言うのはそれこそ文脈無視。何でそこまでtrue falseを否定するの?
198デフォルトの名無しさん
2021/10/17(日) 22:06:34.19ID:wfDs6PxW >>190で完全におわってるんだけど何が不満なんだよw
199デフォルトの名無しさん
2021/10/17(日) 22:32:05.95ID:8eKBj5MQ200デフォルトの名無しさん
2021/10/17(日) 22:53:52.24ID:RKnKEp2y >ifは正常終了か異常終了かで処理を分岐させるもので
>真か偽かで処理を分岐させるものではない
そこが普通のプログラミング言語と違うから
混乱することあるよねって話だったんじゃ?
>真か偽かで処理を分岐させるものではない
そこが普通のプログラミング言語と違うから
混乱することあるよねって話だったんじゃ?
201デフォルトの名無しさん
2021/10/17(日) 23:53:53.96ID:DWmfIprR >>200
混乱するよな、だったら、そうやな、で終わってた。
ところが、混乱した頭でムリヤリ合理化して、シェルスクリプトとC言語に真偽を融合した大統一理論wを主張されたら、そりゃあ黙ってはおれん。
いや、スルーしてもええんやけど、イジったらおもろいやん?
混乱するよな、だったら、そうやな、で終わってた。
ところが、混乱した頭でムリヤリ合理化して、シェルスクリプトとC言語に真偽を融合した大統一理論wを主張されたら、そりゃあ黙ってはおれん。
いや、スルーしてもええんやけど、イジったらおもろいやん?
202デフォルトの名無しさん
2021/10/17(日) 23:59:20.58ID:DWmfIprR203デフォルトの名無しさん
2021/10/18(月) 00:47:48.71ID:JsauePnn >>202
元々に合わせてのなんだけどな
基本的に元のレスに合わせる感じ、なんか断定的に書いてたりしたら、ひとりごちでわかったように書いてたらw
(true/falseってコマンドが真っ先にじゃね?wともあってなあ。シェルスクリプトでtrue/false書くのはコマンドのだし)
元々に合わせてのなんだけどな
基本的に元のレスに合わせる感じ、なんか断定的に書いてたりしたら、ひとりごちでわかったように書いてたらw
(true/falseってコマンドが真っ先にじゃね?wともあってなあ。シェルスクリプトでtrue/false書くのはコマンドのだし)
204デフォルトの名無しさん
2021/10/18(月) 01:12:06.51ID:JsauePnn >真っ先にじゃね?wともあってなあ
真っ先にじゃね?wともあってなあ、「わかるだろ」と親切心w皆無(何故かは書いた通りw)なこともあり
てことね
真っ先にじゃね?wともあってなあ、「わかるだろ」と親切心w皆無(何故かは書いた通りw)なこともあり
てことね
205デフォルトの名無しさん
2021/10/18(月) 02:50:01.04ID:mrfOLNSK おまいMbだろ
206デフォルトの名無しさん
2021/10/18(月) 05:37:03.73ID:0o1cEYf8 >>194
ホントにdoって書いてあるの?
ホントにdoって書いてあるの?
207デフォルトの名無しさん
2021/10/18(月) 07:42:47.78ID:9KKYdoU5208デフォルトの名無しさん
2021/10/18(月) 08:55:39.51ID:9KKYdoU5 >>200
Ifに関しては普通のプログラムも真かそれ以外かだと思うけど。
Ifに関しては普通のプログラムも真かそれ以外かだと思うけど。
209デフォルトの名無しさん
2021/10/18(月) 08:57:21.08ID:9KKYdoU5 >>208
失礼、プログラムじゃなくてプログラミング言語
失礼、プログラムじゃなくてプログラミング言語
210デフォルトの名無しさん
2021/10/18(月) 09:19:48.79ID:7yYa42Qv211デフォルトの名無しさん
2021/10/18(月) 10:24:02.43ID:1Sg888+/ >>208
何が真/偽と評価されるかの話に、抽象化された一般論で割り込むな。
何が真/偽と評価されるかの話に、抽象化された一般論で割り込むな。
212デフォルトの名無しさん
2021/10/18(月) 10:32:14.58ID:sM+wOftf >>208
普通のプログラム言語は式が真かそれ以外と評価される
シェルスクリプトはコマンドの実行結果が真かそれ以外と評価される
例えば C言語で if (foo(0)) { ... } とあったとき、
0は真だと思うかね?偽だと思うかね?
それと同じことだよ
普通のプログラム言語は式が真かそれ以外と評価される
シェルスクリプトはコマンドの実行結果が真かそれ以外と評価される
例えば C言語で if (foo(0)) { ... } とあったとき、
0は真だと思うかね?偽だと思うかね?
それと同じことだよ
213デフォルトの名無しさん
2021/10/20(水) 04:35:22.97ID:tjBtBq8J Mb
>プログラミング言語どころかコンピュータのことすら
理解していない奴が荒らしにきているわけだ。
初心者はもちろん歓迎するのだが、
邪魔する奴は全力でツブす
という、怖ろしい連中がいることを肝に銘じてほしい。」
>プログラミング言語どころかコンピュータのことすら
理解していない奴が荒らしにきているわけだ。
初心者はもちろん歓迎するのだが、
邪魔する奴は全力でツブす
という、怖ろしい連中がいることを肝に銘じてほしい。」
214デフォルトの名無しさん
2021/10/20(水) 10:02:20.45ID:BWdzBBaJ すぐに特定されそうなレスをよく書ける
215デフォルトの名無しさん
2021/10/20(水) 10:35:57.56ID:UVUG50tp >>213
お前私怨が文から溢れすぎ
お前私怨が文から溢れすぎ
216デフォルトの名無しさん
2021/10/23(土) 03:05:44.21ID:46fTSgYa ! [ -n 'これ?' ]
[ ! -n 'それともこれ?' ]
[ ! -n 'それともこれ?' ]
217デフォルトの名無しさん
2021/10/23(土) 08:05:12.92ID:TpylJdXD [ 自体がコマンドなので自ずからわかるでしょう
218デフォルトの名無しさん
2021/10/24(日) 00:23:08.92ID:Ku/iA6Hb 好きにだな
シェルがやる(汎用)のかコマンドがやる(独自)のかの違い
得られるのは同じ
シェルがやる(汎用)のかコマンドがやる(独自)のかの違い
得られるのは同じ
219デフォルトの名無しさん
2021/10/24(日) 23:07:32.27ID:egBH1Q0S [] の中に入ってるほうがすき
220デフォルトの名無しさん
2021/10/26(火) 05:10:22.39ID:NvoOVavJ 論理反転できないコマンドは外に!書くしかないしな
221デフォルトの名無しさん
2021/10/26(火) 09:33:58.13ID:Y5xWPagQ222デフォルトの名無しさん
2021/10/26(火) 10:12:21.51ID:sjaXXoqx223デフォルトの名無しさん
2021/11/07(日) 20:05:32.87ID:xhLNYeNd shでmain関数を定義して
ループ内で main & すればサブプロセスで動いてくれてechoしたときの出力も全部表示されるやん?
powershellで同じことしたいのにできひんねんけど誰か教えてくれ
ループ内で main & すればサブプロセスで動いてくれてechoしたときの出力も全部表示されるやん?
powershellで同じことしたいのにできひんねんけど誰か教えてくれ
224デフォルトの名無しさん
2021/11/08(月) 04:06:00.33ID:jye9PFXO さすがにPowerShellのスレで聞きなよ
225デフォルトの名無しさん
2021/11/08(月) 08:18:35.84ID:7h7MJ4sx226デフォルトの名無しさん
2021/11/15(月) 11:58:25.47ID:SlSQecoN cshの書籍って何がおすすめですか。
すごく初心者です。
すごく初心者です。
227デフォルトの名無しさん
2021/11/15(月) 12:01:56.43ID:P0qC0lwO 初心者は、cshなんか使わないほうが?
BashかPerlのほうが!
BashかPerlのほうが!
228デフォルトの名無しさん
2021/11/15(月) 14:15:42.51ID:o0383L8J すごく初心者はいきなりcshとかやらずに
コンピュータの仕組みを理解するのが先だと思う
コンピュータの仕組みを理解するのが先だと思う
229デフォルトの名無しさん
2021/11/15(月) 14:28:42.54ID:2zWqj8FL ありがとうございます。
linuxは業務で触っていて
基本的なコマンドは知っています。
苦手ではありますが。
ハード屋なのですが
c言語、matlab、vba辺りの
コードは書いていました。
会社のメンバーが
cshで実行するスクリプトを
多用していて理解したり
自分で書いたりする必要が
発生しました。
linuxは業務で触っていて
基本的なコマンドは知っています。
苦手ではありますが。
ハード屋なのですが
c言語、matlab、vba辺りの
コードは書いていました。
会社のメンバーが
cshで実行するスクリプトを
多用していて理解したり
自分で書いたりする必要が
発生しました。
230デフォルトの名無しさん
2021/11/15(月) 15:15:05.60ID:kskWe0RM cshを常用してるって50代後半以上の人たち?
231デフォルトの名無しさん
2021/11/15(月) 18:25:02.89ID:dRw5fmM/ cshでちゃんと動くスクリプトをかける気がしない
232デフォルトの名無しさん
2021/11/15(月) 18:50:52.77ID:P0qC0lwO >>229
メンバーに、Cshからの離脱を提案するべき!w
メンバーに、Cshからの離脱を提案するべき!w
233デフォルトの名無しさん
2021/11/15(月) 19:06:48.98ID:Nvu8rn94234デフォルトの名無しさん
2021/11/15(月) 21:09:52.69ID:VIw7Bjxz cshスクリプトの中からbashを呼び出せば問題解決だよ!
235デフォルトの名無しさん
2021/11/16(火) 02:22:46.34ID:/Wn82zXu236デフォルトの名無しさん
2021/11/16(火) 12:03:49.53ID:a9xlbndo 40代だけど、Solarisでtcshがログインシェルだったなあ
作業手順書作って、承認受けてから変更作業するタイプのしごとしてて、
ワンライナースクリプトをcshrcに書いてた記憶がある。
帰ったらその頃の資料探してみる
独立したshell scriptを書くには向かないのは同意
作業手順書作って、承認受けてから変更作業するタイプのしごとしてて、
ワンライナースクリプトをcshrcに書いてた記憶がある。
帰ったらその頃の資料探してみる
独立したshell scriptを書くには向かないのは同意
237デフォルトの名無しさん
2021/11/16(火) 13:09:44.40ID:6naJ2IpF Bsh系も、testコマンドのオプション扱いじゃなく、
直感的な == < > <= >= != を使いたいと思うことがある
普段他の言語を書いてて、たまにshを使おうとするといつも一瞬考えてしまう
Bashだと = のかわりに == が使えるけど、後は駄目だもんな
= もスペースのあるなしで代入と区別するなんてこと忘れてて悩むことしばし
直感的な == < > <= >= != を使いたいと思うことがある
普段他の言語を書いてて、たまにshを使おうとするといつも一瞬考えてしまう
Bashだと = のかわりに == が使えるけど、後は駄目だもんな
= もスペースのあるなしで代入と区別するなんてこと忘れてて悩むことしばし
238デフォルトの名無しさん
2021/11/16(火) 19:38:58.36ID:ILiueDpc239デフォルトの名無しさん
2021/11/16(火) 19:46:23.56ID:M5sJu72u240デフォルトの名無しさん
2021/11/18(木) 00:52:48.55ID:8Z3t28Md >>236
使ってた本は
技術評論社のThe UNIX Surper Text 上
で、
第29章 csh プログラミング
だと思う。
ほかはmanとwebの情報でやってたはず。
csh系はたとえシングルクォートの中でも!はエスケープしないといけないのが注意点かな。
変数の中に入れるときにエスケープはいつでも必須で、
それを使うときにヒストリ置換するならそのままつかい、ヒストリ置換せずに使うなら再度エスケープがいる。
あとは慣れだと思う。
リダイレクト関連はcshだと実現できないことがあったはずで、
それはcshからperl呼んで実質perlスクリプトになってたはず。
使ってた本は
技術評論社のThe UNIX Surper Text 上
で、
第29章 csh プログラミング
だと思う。
ほかはmanとwebの情報でやってたはず。
csh系はたとえシングルクォートの中でも!はエスケープしないといけないのが注意点かな。
変数の中に入れるときにエスケープはいつでも必須で、
それを使うときにヒストリ置換するならそのままつかい、ヒストリ置換せずに使うなら再度エスケープがいる。
あとは慣れだと思う。
リダイレクト関連はcshだと実現できないことがあったはずで、
それはcshからperl呼んで実質perlスクリプトになってたはず。
241デフォルトの名無しさん
2021/11/18(木) 02:41:57.64ID:+R4B5ZiG242デフォルトの名無しさん
2021/11/18(木) 07:27:37.37ID:8Z3t28Md >>241
シングルクォートを入れたければ、ダブルクォートでくくる。
ダブルクォートを入れたければシングルクォートでくくる。
set hensu="single ' double "'"'" hogehoge"
古いbshもこの方式が必要だったはず。
シングルクォートを入れたければ、ダブルクォートでくくる。
ダブルクォートを入れたければシングルクォートでくくる。
set hensu="single ' double "'"'" hogehoge"
古いbshもこの方式が必要だったはず。
243デフォルトの名無しさん
2021/11/18(木) 08:22:45.64ID:+R4B5ZiG あれ?できるね?なにで引っかかったんだっけか?
改行文字だったかな?
入れること自体はできるけど、それを使おうとすると
Unmatchedが表示されない?
改行+クォートの場合だけ?
どうも仕様がよくわからん
改行文字だったかな?
入れること自体はできるけど、それを使おうとすると
Unmatchedが表示されない?
改行+クォートの場合だけ?
どうも仕様がよくわからん
244デフォルトの名無しさん
2021/11/18(木) 14:06:14.63ID:a7FUItee 昔に何故cshでshell scriptを書くべきでないかという英語文書があって日本語訳もあった
調べたい人は自分で調べてくれ
調べたい人は自分で調べてくれ
245デフォルトの名無しさん
2021/11/19(金) 00:14:07.06ID:tkL53aTR >>230
そう。正に俺の歳が分かれ目だ。
そう。正に俺の歳が分かれ目だ。
246デフォルトの名無しさん
2021/11/19(金) 00:38:23.55ID:ufFlBqDY247デフォルトの名無しさん
2021/11/19(金) 00:59:37.90ID:Z3I1Kt5f cshの問題点
> 4. クオート
> csh ではまともにクオートをすることができません。
これか
> 改行をクオートするためにはバックスラッシュを使う必要があり、文字列に含
> めるのは本当に難しいことです。
難しいのか不可能なのかはっきりしてほしいな
不可能なんじゃないのか?
> 4. クオート
> csh ではまともにクオートをすることができません。
これか
> 改行をクオートするためにはバックスラッシュを使う必要があり、文字列に含
> めるのは本当に難しいことです。
難しいのか不可能なのかはっきりしてほしいな
不可能なんじゃないのか?
248デフォルトの名無しさん
2021/11/19(金) 01:47:44.31ID:tkL53aTR えー。うそー。そんなの簡単じゃん。
% set s = "abc\
def"
% echo "$s"
Unmatched ".
ひでぶっ
% set s = "abc\
def"
% echo "$s"
Unmatched ".
ひでぶっ
249デフォルトの名無しさん
2021/11/19(金) 01:55:47.56ID:mVkI0tbJ >>248
どうなっとるんや?w
どうなっとるんや?w
250242
2021/11/19(金) 08:41:17.13ID:STy6DLgM LFが入った変数を再度シェルに評価させるときは、
もともとその変数の末尾に¥¥を書く。
気をつけるのはヒストリ置換だけじゃなかったね
忘れてたよ。
alias time-filter '(perl -e '"'"'\\
use POSIX qq(strftime); \\
$| = 1; \\
while (defined(my $line = <>)) { \\
print strftime("%Y/%m/%d %H:%M:%S ", localtime), $line; }'"')"
こんな感じ。
csh手元にないから動作確認してみて。
tail -f 時刻が出ない追記されていくファイル | time-filter
って感じで使ってた
もともとその変数の末尾に¥¥を書く。
気をつけるのはヒストリ置換だけじゃなかったね
忘れてたよ。
alias time-filter '(perl -e '"'"'\\
use POSIX qq(strftime); \\
$| = 1; \\
while (defined(my $line = <>)) { \\
print strftime("%Y/%m/%d %H:%M:%S ", localtime), $line; }'"')"
こんな感じ。
csh手元にないから動作確認してみて。
tail -f 時刻が出ない追記されていくファイル | time-filter
って感じで使ってた
251デフォルトの名無しさん
2021/11/19(金) 21:58:57.06ID:QjMBy/iN 例の大学で教授やってるやつ、どうどう利用規約違反してたことを
宣言しててこいつやばくね?わかってないのかね?
リッチー大佐の中の人
https://twitter.com/col_richie/status/1460830111939186689
> Twitter API v2は、収集可能なツイート数の制限が無料プランでも月200万ツイートに緩和される、
> とアナウンスされたのだが、我らのTwitterアプリ「小鳥男」なら、とっくの昔から、
> 理論上432万ツイートを1日で(1秒あたり50)収集する能力を持っているぞ。
https://twitter.com/5chan_nel (5ch newer account)
宣言しててこいつやばくね?わかってないのかね?
リッチー大佐の中の人
https://twitter.com/col_richie/status/1460830111939186689
> Twitter API v2は、収集可能なツイート数の制限が無料プランでも月200万ツイートに緩和される、
> とアナウンスされたのだが、我らのTwitterアプリ「小鳥男」なら、とっくの昔から、
> 理論上432万ツイートを1日で(1秒あたり50)収集する能力を持っているぞ。
https://twitter.com/5chan_nel (5ch newer account)
252デフォルトの名無しさん
2021/11/19(金) 23:56:45.76ID:mVkI0tbJ 「理論上」の「能力」の何が「規約違反」なんや?w
253デフォルトの名無しさん
2021/11/20(土) 00:56:30.88ID:JrFFOVaX 本人降臨
254デフォルトの名無しさん
2021/11/20(土) 07:12:22.11ID:H2B0KunX 本人に直接言えよ、誰も興味ないっての
255デフォルトの名無しさん
2021/11/20(土) 10:05:52.73ID:+pLKjIh3 例えて言うのなら、
1ヶ月30GBまで使えるように緩和されます
↓
とっくの昔から理論上一日で30GB使い切るアプリを持っているぞ!
何を自慢しているのかわからないなw
そんなのどんなアプリだって使い切る能力ぐらい持ってるでしょ
432万ツイートを収集できる能力のどこが「とっくの昔から能力を持ってるぞ」と
自慢するようなないようなのかわからん
1ヶ月30GBまで使えるように緩和されます
↓
とっくの昔から理論上一日で30GB使い切るアプリを持っているぞ!
何を自慢しているのかわからないなw
そんなのどんなアプリだって使い切る能力ぐらい持ってるでしょ
432万ツイートを収集できる能力のどこが「とっくの昔から能力を持ってるぞ」と
自慢するようなないようなのかわからん
256デフォルトの名無しさん
2021/11/20(土) 10:12:48.03ID:+pLKjIh3 むしろ1秒あたり50ツイートって遅くね?
1ツイートあたり 280文字?として多めに見積もって1ツイート1KB
つまり50KB/sでしょ?
Twitter側の帯域制限があるのだろうと思うけど
別に自慢できる量じゃないなぁ
そもそも通信速度とサーバーの負荷に依存する話なので
たかがクライアントアプリを自慢するようなもんじゃない
1ツイートあたり 280文字?として多めに見積もって1ツイート1KB
つまり50KB/sでしょ?
Twitter側の帯域制限があるのだろうと思うけど
別に自慢できる量じゃないなぁ
そもそも通信速度とサーバーの負荷に依存する話なので
たかがクライアントアプリを自慢するようなもんじゃない
257デフォルトの名無しさん
2021/11/20(土) 12:55:55.53ID:mzO+cRkE それってシェルスクリプトの話なの?
258デフォルトの名無しさん
2021/11/23(火) 15:01:42.04ID:HIAOM8SH 全ての事をシェルスクリプトで実現可能だと信じる者にとっては、この世の全てはシェルスクリプトの話になる。
259デフォルトの名無しさん
2021/11/24(水) 16:26:22.49ID:uH6oNI9g すみません、質問です。
hoge(関数) /usr/bin/python /usr/local/bin/piyo/piyopiyo.py
mv foge fogefoge
rm *hege*.csv
exit
hoge()[
python -B $1
以下、処理
]
という形は、
hoge(関数)というサブルーチン内で/usr/local/bin/piyo/piyopiyo.pyを実行する形になりますでしょうか。
お手数おかけして恐縮ですが、教えていただければ幸いです。
hoge(関数) /usr/bin/python /usr/local/bin/piyo/piyopiyo.py
mv foge fogefoge
rm *hege*.csv
exit
hoge()[
python -B $1
以下、処理
]
という形は、
hoge(関数)というサブルーチン内で/usr/local/bin/piyo/piyopiyo.pyを実行する形になりますでしょうか。
お手数おかけして恐縮ですが、教えていただければ幸いです。
260デフォルトの名無しさん
2021/11/24(水) 20:18:23.05ID:BxfR7tjM261デフォルトの名無しさん
2021/11/25(木) 01:32:33.90ID:nh0ZEMSE コマンド呼び出しは、 `〜`, $(〜)
〜の所に、/usr/bin/python /usr/local/bin/piyo/piyopiyo.py
を書けばよい
python で、スクリプトファイルを実行する
〜の所に、/usr/bin/python /usr/local/bin/piyo/piyopiyo.py
を書けばよい
python で、スクリプトファイルを実行する
262デフォルトの名無しさん
2021/12/06(月) 13:07:43.50ID:EdXlAvnn リッチー大佐ヤケドしすぎててワロタw
あの2人、終始レッテル貼りと揚げ足取りばっかりで終わってるな
あの2人、終始レッテル貼りと揚げ足取りばっかりで終わってるな
263デフォルトの名無しさん
2021/12/07(火) 00:28:49.96ID:8z/NS8OJ おわってんのはおめーだよ...
264デフォルトの名無しさん
2021/12/07(火) 08:02:22.59ID:J63EZfFq お?本人登場ですかな?www
265デフォルトの名無しさん
2021/12/07(火) 11:51:58.44ID:sVKUttQ/ ガチでヌーブなんですけどrequestsとbeautifulsoupでスクレイピングやってます
waitかけないとバンされるよと言われましたがどうすればいいですか?
requests.get()でtimeoutは今書きましたがforで同じサイトの似たようなページに何度もアクセスするのでサーバーへの負荷はすごいと思います
これに対してどうすればいいですか?
waitかけないとバンされるよと言われましたがどうすればいいですか?
requests.get()でtimeoutは今書きましたがforで同じサイトの似たようなページに何度もアクセスするのでサーバーへの負荷はすごいと思います
これに対してどうすればいいですか?
266デフォルトの名無しさん
2021/12/07(火) 12:54:21.46ID:lMfMxSoR シェルスクリプトの話題ではないので、他のスレへ書き込んでください!
267デフォルトの名無しさん
2021/12/08(水) 18:51:18.84ID:pKMBsr2n すみません、質問です。
cp -f dir1/file dir2 を実行し、もし失敗したとき、
echo File copy failure >> log
を実行させる処理はどのようにすればよいですか?
cp -f dir1/file dir2 を実行し、もし失敗したとき、
echo File copy failure >> log
を実行させる処理はどのようにすればよいですか?
268デフォルトの名無しさん
2021/12/08(水) 18:53:04.75ID:FensyVy4 if文調べてみ
269デフォルトの名無しさん
2021/12/08(水) 19:23:10.00ID:1IkqCtnf 宿題は自分でやらなきゃ
270デフォルトの名無しさん
2021/12/08(水) 21:26:49.78ID:FensyVy4 シェルスクリプト if文
でググると最初の方にあるのは、[ ] (test) ありきで、
評価するのは 条件式 と他の言語と同じような説明してるのなんだな
でググると最初の方にあるのは、[ ] (test) ありきで、
評価するのは 条件式 と他の言語と同じような説明してるのなんだな
271デフォルトの名無しさん
2021/12/09(木) 11:10:12.63 一定時間ごとにechoするスクリプトがあります
プロセスっていうのでしょうか、
そのechoされたものを動的に取得し
別のスクリプトに渡したいのですがどうやればいいのでしょうか
【sample1.sh】
echo aaa
sleep 3
echo bbb
【sample2.sh】
echo $1
$ bash sample1.sh & sleep 5 && bash sample2.sh
このコードになんらかを加えてsample2にbbbを渡せたらな、
というのを期待しています
プロセスっていうのでしょうか、
そのechoされたものを動的に取得し
別のスクリプトに渡したいのですがどうやればいいのでしょうか
【sample1.sh】
echo aaa
sleep 3
echo bbb
【sample2.sh】
echo $1
$ bash sample1.sh & sleep 5 && bash sample2.sh
このコードになんらかを加えてsample2にbbbを渡せたらな、
というのを期待しています
272デフォルトの名無しさん
2021/12/09(木) 11:16:25.28273デフォルトの名無しさん
2021/12/09(木) 11:17:25.98274デフォルトの名無しさん
2021/12/09(木) 11:52:59.62ID:4q0mFQ+L # コマンドの実行履歴を出力する
set -x
# コマンドの返り値が非ゼロのとき停止する
set -e
コマンド終了時には「終了ステータス (exit-status)」と呼ばれる、
コマンドの成否を表す数値が、特殊変数 $? に自動で設定される
各コマンドにより異なるが、一般的には、
コマンド成功時には「0」
失敗時には「1」(コマンドやエラーの種類によっては、0 以外)
何かのコマンド
echo $?
例えば、
#!/bin/sh
cat abc
case $? in
0) echo "ファイルが存在する" ;;
*) echo "ファイルが存在しない" ;;
esac
これを、if [ $? = 0 ]; then
と書くと、Shell Check の警告が出る
SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?.
set -x
# コマンドの返り値が非ゼロのとき停止する
set -e
コマンド終了時には「終了ステータス (exit-status)」と呼ばれる、
コマンドの成否を表す数値が、特殊変数 $? に自動で設定される
各コマンドにより異なるが、一般的には、
コマンド成功時には「0」
失敗時には「1」(コマンドやエラーの種類によっては、0 以外)
何かのコマンド
echo $?
例えば、
#!/bin/sh
cat abc
case $? in
0) echo "ファイルが存在する" ;;
*) echo "ファイルが存在しない" ;;
esac
これを、if [ $? = 0 ]; then
と書くと、Shell Check の警告が出る
SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?.
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 青銅聖闘士のパンチは音速←わかる 白銀聖闘士はその数倍←まぁわかる 黄金聖闘士は光速←は?
- 4時だから窓から4回ちんこ出した
- クマどもが冬眠拒否
- さわやかって
- 紅しょうが大量に入れるやつwwwwwwwww
- そろそろみんなが忘れてそうなこと
