シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
前スレ: シェルスクリプト総合 その35
https://mevius.5ch.net/test/read.cgi/tech/1606221440/
関連スレ
・【Bash】Windows Subsystem for Linux【WSL】9
https://mao.5ch.net/test/read.cgi/linux/1607589861/
・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/
探検
シェルスクリプト総合 その36
レス数が1000を超えています。これ以上書き込みはできません。
2021/02/25(木) 09:20:14.64ID:ZyJLXTlk
952デフォルトの名無しさん
2021/10/04(月) 23:57:42.15ID:zDusbFKv953デフォルトの名無しさん
2021/10/05(火) 05:07:50.98ID:h//Q5yAA 終了ステータスは、真偽値じゃなくて数値だからね
127 はコマンドが見つからないとか、いろんな意味がある
127 はコマンドが見つからないとか、いろんな意味がある
954デフォルトの名無しさん
2021/10/05(火) 11:37:08.32ID:BsTkn0yK955デフォルトの名無しさん
2021/10/05(火) 15:18:38.51ID:Vzh0q/ov cみたいな新参言語と比べるなよ?
956デフォルトの名無しさん
2021/10/05(火) 15:22:23.47ID:Vzh0q/ov と思ったらcのが早いのか…
当時ナウかったalgolの影響大きすぎて錯覚する(fiとかesacとか)
当時ナウかったalgolの影響大きすぎて錯覚する(fiとかesacとか)
957デフォルトの名無しさん
2021/10/05(火) 15:28:38.07ID:k2GS0F1f algolは死んだしcを新参と笑えるバリバリ現役言語はlisp、fortran、cobolくらいでは
958デフォルトの名無しさん
2021/10/05(火) 17:09:15.80ID:dp5on/du このスレきもちわる
959デフォルトの名無しさん
2021/10/05(火) 18:12:02.21ID:33c4JJMi 病気なんじゃね?w
960デフォルトの名無しさん
2021/10/05(火) 18:52:58.49ID:JbR3YU6O 科学臭
961デフォルトの名無しさん
2021/10/05(火) 19:11:37.04ID:33c4JJMi 宗教よりはマシやろw
962デフォルトの名無しさん
2021/10/05(火) 19:50:39.12ID:RLO9CO91963デフォルトの名無しさん
2021/10/05(火) 21:10:53.59ID:33c4JJMi regexpは表現やろ?
964デフォルトの名無しさん
2021/10/05(火) 22:05:00.71ID:I9nBHPaT 忘れられがちなPL/I
965デフォルトの名無しさん
2021/10/06(水) 10:50:03.14ID:1RiK8cCJ966デフォルトの名無しさん
2021/10/06(水) 13:05:49.45ID:RFU2koBA >>963
「expression」の和訳の問題だから。
「expression」の和訳の問題だから。
967デフォルトの名無しさん
2021/10/09(土) 22:37:14.17ID:IfT7mukr 俺もUNIXプログラミング環境持ってるけど、真と偽をtrueとそれ以外(false)って感じで書いてある。シェルスクリプトで真偽と言うとこれだよな。一般的な真偽値とはまた別で。
それにifは真かそれ以外かしか見れないんだから真偽値で言う偽なんざいらねーし。
それにifは真かそれ以外かしか見れないんだから真偽値で言う偽なんざいらねーし。
968デフォルトの名無しさん
2021/10/10(日) 00:30:49.33ID:xmO2FPMa またよくわかってないやつが
969デフォルトの名無しさん
2021/10/10(日) 00:35:16.90ID:6jcVzzbi970デフォルトの名無しさん
2021/10/10(日) 12:09:43.32ID:ZbbT3pWR >>969
Unixプログラミング環境、今となっては結構レアな本だと思ってたけどみんな持ってるのか。
特に邦訳版から読んでそれ以降使い込まなかった人はシェルスクリプトの真偽はゼロかそれ以外って覚えてても不思議はないと思うな。
Unixプログラミング環境、今となっては結構レアな本だと思ってたけどみんな持ってるのか。
特に邦訳版から読んでそれ以降使い込まなかった人はシェルスクリプトの真偽はゼロかそれ以外って覚えてても不思議はないと思うな。
971デフォルトの名無しさん
2021/10/10(日) 17:16:50.58ID:Liv3MhTX 不思議もなにも、それしかないからな。
勝手に意味付けしようと思い込むヤツが勝手にややこしくできあがってるだけで。
勝手に意味付けしようと思い込むヤツが勝手にややこしくできあがってるだけで。
972デフォルトの名無しさん
2021/10/11(月) 07:02:29.47ID:0Us0xwCf 真偽じゃなくて成否なんだよ
Exit statusは
否は複数あっていい
&&や||はexit statusに関連する成否を扱う演算なんだ
どこにどう書いてあろうが、本質はそれ以外にない
「関連する」と書いたのは
$ not-exist-command || echo hello world
not-exist-command: command not found
hello world
$ not-exist-command && echo hello world
not-exist-command: command not found
$
これはexit statusじゃないから
Exit statusは
否は複数あっていい
&&や||はexit statusに関連する成否を扱う演算なんだ
どこにどう書いてあろうが、本質はそれ以外にない
「関連する」と書いたのは
$ not-exist-command || echo hello world
not-exist-command: command not found
hello world
$ not-exist-command && echo hello world
not-exist-command: command not found
$
これはexit statusじゃないから
973デフォルトの名無しさん
2021/10/11(月) 09:50:35.87ID:j+pkxrpN >>972
うーん、失敗したら真を返すプログラムも書きたいから、スクリプト側では成否と言う概念や言葉を使うより真偽の方がやりやすいんじゃないの?
うーん、失敗したら真を返すプログラムも書きたいから、スクリプト側では成否と言う概念や言葉を使うより真偽の方がやりやすいんじゃないの?
974デフォルトの名無しさん
2021/10/11(月) 17:46:38.27ID:FYumYboV >>972
いや、それもexit status。
man bash(COMMAND EXECUTION)にもはっきりそう書いてある。
プログラムとパイプライン各段、終了ステータスを出すほうと受けるほうで混乱すんなよ。
いや、それもexit status。
man bash(COMMAND EXECUTION)にもはっきりそう書いてある。
プログラムとパイプライン各段、終了ステータスを出すほうと受けるほうで混乱すんなよ。
975デフォルトの名無しさん
2021/10/11(月) 17:47:38.44ID:FYumYboV976デフォルトの名無しさん
2021/10/11(月) 20:08:45.72ID:AmMau6EN >>973
失敗したら真を返すってC言語の場合だとどうかきたいの?
https://ja.wikipedia.org/wiki/%E3%83%96%E3%83%BC%E3%83%AA%E3%82%A2%E3%83%B3%E5%9E%8B#C99
> C99ではブーリアン型を格納したりするための型が作られ、その型のためのキーワード _Bool が追加された。
失敗したら真を返すってC言語の場合だとどうかきたいの?
https://ja.wikipedia.org/wiki/%E3%83%96%E3%83%BC%E3%83%AA%E3%82%A2%E3%83%B3%E5%9E%8B#C99
> C99ではブーリアン型を格納したりするための型が作られ、その型のためのキーワード _Bool が追加された。
977デフォルトの名無しさん
2021/10/11(月) 22:58:31.30ID:Fcy0jrOe >>976
Wikipediaで言うと
https://ja.m.wikipedia.org/wiki/終了ステータス
の意味論最終段
時には、終了ステータスをうまく設計し、呼び出した側のプログラムがそれをそのまま条件分岐のインデックスとして使うということも可能である。
の所かな。
結局、
>>975 ですよね。
Wikipediaで言うと
https://ja.m.wikipedia.org/wiki/終了ステータス
の意味論最終段
時には、終了ステータスをうまく設計し、呼び出した側のプログラムがそれをそのまま条件分岐のインデックスとして使うということも可能である。
の所かな。
結局、
>>975 ですよね。
978デフォルトの名無しさん
2021/10/11(月) 23:33:54.95ID:0Us0xwCf >>976
C API的には
EXIT_SUCCESS
EXIT_FAILURE
を使う
前者は0であることが規格で決まってる
後者は0以外だが特に決まってない
特定の値、例えば1に依存したいならこのマクロは使ってはいけない
C API的には
EXIT_SUCCESS
EXIT_FAILURE
を使う
前者は0であることが規格で決まってる
後者は0以外だが特に決まってない
特定の値、例えば1に依存したいならこのマクロは使ってはいけない
979デフォルトの名無しさん
2021/10/11(月) 23:35:05.68ID:0Us0xwCf >>973
マクロ名が成否なんで
マクロ名が成否なんで
980デフォルトの名無しさん
2021/10/12(火) 00:23:03.15ID:4emiI4KE >>978
「C API」とか言うヤツがどこまでわかってんだか。w
「C API」とか言うヤツがどこまでわかってんだか。w
981デフォルトの名無しさん
2021/10/12(火) 00:47:23.22ID:lvIpixgN ルビーの国へさっさとお帰り
982デフォルトの名無しさん
2021/10/12(火) 02:14:19.27ID:jMkI4z1q C/C++の関数は成功で1を返すのが多いと思う
strcmpみたいなのは例外
WindowsのAPIとかunixのシステムコールも基本的には同上だと思う
ところがシェルのコマンドとして観た場合 !0 は失敗で成功が 0
初心者はここで混乱する
strcmpみたいなのは例外
WindowsのAPIとかunixのシステムコールも基本的には同上だと思う
ところがシェルのコマンドとして観た場合 !0 は失敗で成功が 0
初心者はここで混乱する
983デフォルトの名無しさん
2021/10/12(火) 02:50:11.86ID:qBBV2SpK984デフォルトの名無しさん
2021/10/12(火) 04:02:37.92ID:4emiI4KE >>982
またええかげんなことを。。。
strcmpの戻り値は、成功か失敗かではなく、大小関係だから。
C標準関数、UNIXシステムコールの多くは、失敗時に-1、成功時は0や非負整数を返す。
ちなみにエラーの内容はグローバル変数errno。
初心者は、歴史的事情とか現実の適当さとかを知らない。
だから、まったくの別物にも、なにか統一的なルールがあるはず、と勝手に夢想して勝手に混乱してまう。
そんなヤツもじきにわかる。
ルールがあるとしたらただひとつ、ルールなんか存在しないのだということ。
つーか、ええから黙って覚えろ!
またええかげんなことを。。。
strcmpの戻り値は、成功か失敗かではなく、大小関係だから。
C標準関数、UNIXシステムコールの多くは、失敗時に-1、成功時は0や非負整数を返す。
ちなみにエラーの内容はグローバル変数errno。
初心者は、歴史的事情とか現実の適当さとかを知らない。
だから、まったくの別物にも、なにか統一的なルールがあるはず、と勝手に夢想して勝手に混乱してまう。
そんなヤツもじきにわかる。
ルールがあるとしたらただひとつ、ルールなんか存在しないのだということ。
つーか、ええから黙って覚えろ!
985デフォルトの名無しさん
2021/10/12(火) 09:48:27.17ID:EPRomWCK986デフォルトの名無しさん
2021/10/12(火) 10:39:00.32ID:l2L6GWVJ だからC言語で真偽値を返したいって言ってるんだろ!
987デフォルトの名無しさん
2021/10/12(火) 10:52:14.50ID:OF6dTiE4 関数とプログラムの返り値を一緒にするなよバカ
988デフォルトの名無しさん
2021/10/12(火) 13:27:15.11ID:4emiI4KE >>986
じゃあシェルスクリプトのスレに来んなよ!w
じゃあシェルスクリプトのスレに来んなよ!w
989デフォルトの名無しさん
2021/10/12(火) 13:39:53.56ID:FcrICImt >>982
まあ、これなんだよね(笑)
要はシェルスクリプトだけは成功やノーエラーは0でないとだめよん、と覚えておきゃいいだけよ。
他は他でそれぞれの流儀があるならそれに従いなさい、ってだけのこと。
まあ、どうしてもってんなら、シェルスクリプトで成功で1を返したっていいけど、あとあと面倒くさいことになるよ、ってだけ。
まあ、これなんだよね(笑)
要はシェルスクリプトだけは成功やノーエラーは0でないとだめよん、と覚えておきゃいいだけよ。
他は他でそれぞれの流儀があるならそれに従いなさい、ってだけのこと。
まあ、どうしてもってんなら、シェルスクリプトで成功で1を返したっていいけど、あとあと面倒くさいことになるよ、ってだけ。
990デフォルトの名無しさん
2021/10/12(火) 15:15:35.32ID:FcrICImt つか、問題が少しずれてるんだな。
シェルスクリプトで、0がノーエラーでなければいけない理由はif文の条件式の判定が
特殊だから。
シェルスクリプトでは、
if C then; A else B fi
となってる場合、Cが0のときが真という扱いになっているから。
普通のプログラミング言語では、ここはCが0のときは偽、それ以外は真。
ここがシェルスクリプトの独特な点。
だから、成功は0を返しなさいよ、ってことになるわだ。
シェルスクリプトで、0がノーエラーでなければいけない理由はif文の条件式の判定が
特殊だから。
シェルスクリプトでは、
if C then; A else B fi
となってる場合、Cが0のときが真という扱いになっているから。
普通のプログラミング言語では、ここはCが0のときは偽、それ以外は真。
ここがシェルスクリプトの独特な点。
だから、成功は0を返しなさいよ、ってことになるわだ。
991デフォルトの名無しさん
2021/10/12(火) 15:55:22.72ID:4emiI4KE >>990
そもそも、シェルスクリプトのifの後に書けるのは条件式ではない。
条件式だとか思うから、ほかと違うんだ、特殊なんだと考えてしまったりして混乱する。
あくまでコマンドラインなんだから、ほかのプログラム言語を引き合いに出そうとした時点でもうおかしい。
そもそも、シェルスクリプトのifの後に書けるのは条件式ではない。
条件式だとか思うから、ほかと違うんだ、特殊なんだと考えてしまったりして混乱する。
あくまでコマンドラインなんだから、ほかのプログラム言語を引き合いに出そうとした時点でもうおかしい。
992デフォルトの名無しさん
2021/10/12(火) 16:22:35.41ID:FcrICImt >>991
あくまでもコマンドライン、って考え方がもうおかしい(笑)
コマンドラインってのはあくまでも多少制限されているだけのスクリプトを書く場所、だよw
あと、ifの後に書くのは条件「式」だよ。そういう屁理屈こねたいなら、値ってのは式のうち、てくらいの常識はわきまえておいてねw
あくまでもコマンドライン、って考え方がもうおかしい(笑)
コマンドラインってのはあくまでも多少制限されているだけのスクリプトを書く場所、だよw
あと、ifの後に書くのは条件「式」だよ。そういう屁理屈こねたいなら、値ってのは式のうち、てくらいの常識はわきまえておいてねw
993デフォルトの名無しさん
2021/10/12(火) 16:33:25.35ID:4emiI4KE994デフォルトの名無しさん
2021/10/12(火) 16:35:06.18ID:FcrICImt995デフォルトの名無しさん
2021/10/12(火) 16:37:10.01ID:FcrICImt996デフォルトの名無しさん
2021/10/12(火) 16:51:48.17ID:h64P2lE5 シェルスクリプトのifの後に書けるのは条件式ではない、コマンド
コマンドライン云々はif文のそこにではなく、シェルスクリプトがなんのためにってことだろう
まあ未だに他の言語と同じと言い張り、いろいろ理解力が足りないのにイキってるw奴には読めない理解できないんだろな
コマンドライン云々はif文のそこにではなく、シェルスクリプトがなんのためにってことだろう
まあ未だに他の言語と同じと言い張り、いろいろ理解力が足りないのにイキってるw奴には読めない理解できないんだろな
997デフォルトの名無しさん
2021/10/12(火) 17:43:56.49ID:FcrICImt >>996
コマンド呼び出しになるのは「式の値」が問題だからだよ。
ほんと面倒くさいな。true、falseコマンドも知らねーの?w
あくまもコマンドラインだから、シェルスクリプトはプログラムじゃない、プログラム言語じゃないと
強弁するつもりなの?w
あのさあ、俺が誰かなのかを下衆って勘繰る暇があるなら、コンピュータと日本語を
ちゃんと勉強しような?w
コマンド呼び出しになるのは「式の値」が問題だからだよ。
ほんと面倒くさいな。true、falseコマンドも知らねーの?w
あくまもコマンドラインだから、シェルスクリプトはプログラムじゃない、プログラム言語じゃないと
強弁するつもりなの?w
あのさあ、俺が誰かなのかを下衆って勘繰る暇があるなら、コンピュータと日本語を
ちゃんと勉強しような?w
998デフォルトの名無しさん
2021/10/12(火) 17:50:56.74ID:elEZT6pO999デフォルトの名無しさん
2021/10/12(火) 17:51:17.62ID:elEZT6pO1000デフォルトの名無しさん
2021/10/12(火) 17:52:21.03ID:elEZT6pO はい、おしまい
真偽値と終了ステータスの区別もつかないのはアホ
真偽値と終了ステータスの区別もつかないのはアホ
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 229日 8時間 32分 7秒
新しいスレッドを立ててください。
life time: 229日 8時間 32分 7秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★7 [七波羅探題★]
- 「そんなに米国が言う通りにやりたいのか」小泉氏、防衛費増額で立民・後藤祐一氏に反論 [少考さん★]
- 中国がここまで過敏になるのは日本に前科があるから。盧溝橋、満州事変。ジャップの先制攻撃は挙げればキリがないけど [472617201]
- 犬って顔くっつけて寝たがるよな
- 【悲報】JA「全然米が売れなくて倉庫を圧迫してる。助けて!」米卸売り業者「安売りしたら赤字になる…助けて!」 [802034645]
- ひらがなの"ふ"、"な"がかけないFラン新入社員に激怒。学歴フィルターは必要と厳格化に踏み切った企業 [737440712]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ★4 [597533159]
- お前ら窓の外みてみろ
