シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
・「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
2021/10/05(火) 22:50:14.38ID:KsbWuyFp
・特記なき場合、POSIX準拠シェルが既定です(古きBourneシェルはほぼ絶滅しました)
POSIX準拠シェルは(d)ash, bash, zsh, (m)ksh, yash, posh, (p)boshです
参考 https://unix.stackexchange.com/questions/145522/
特定のシェルの専用機能に依存する場合は明示しましょう(特にPOSIX準拠シェルではないfish, (t)csh等)
・POSIX準拠シェルのおすすめは?→多く使われているのはDebian/Ubuntu系のdashです
・bashでいいじゃん→bashがインストールされてない環境があります。環境によってデフォルトシェルの実体は異なります
Debian系 … dash CentOS系 … bash Alpine … busybox ash Android … mksh
FreeBSD … ash Solaris,OpenBSD … ksh
macOS … bash(Single UNIX Specification準拠のために一部動作が異なる)
・macOSはzshなんだよね?→ログインシェルがzshに変わっただけで/bin/shはbash 3.2です
・シェルスクリプトは可搬性を持たせるために可能な限りPOSIXに準拠しましょう
仕様 http://pubs.opengroup.org/onlinepubs/9699919799/
・シバンになにを使えばいいの?→POSIX準拠してるなら#!/bin/sh、bashなら#!/bin/bashか#!/usr/bin/env bash
・bash依存はなるべく避けましょう。自覚なきbashism。シバンが#!/bin/shなのにbashに依存する構文を使っていませんか?
・Bourneシェル(≒POSIXシェル)はPOSIX標準化前にUNIXで使われていたシェルで多くの亜種が存在します
Version 7 UNIXのshに一番近いのはOpenSolaris由来のHeirloom Bourne Shell、次点でSchily Bourne Shellのoboshです
Heirloom Bourne Shell: sh http://heirloom.sourceforge.net/sh.html
Schily Bourne Shell: obosh http://schilytools.sourceforge.net/bosh.html
歴史的資料 https://www.in-ulm.de/~mascheck/
・csh/tcshでのシェルスクリプトは*まったく推奨しません*
参考 http://www.speech-lab.org/~hiroki/csh-whynot.euc
・Linux/UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。Manページや各種リンクを見ましょう
・ワイルドカード・パターンは正規表現ではありません。正規表現の話題は正規表現スレへ
・シェル芸とシェルスクリプトは全く異なります
・シェルスクリプトのことをシェルってゆうな
POSIX準拠シェルは(d)ash, bash, zsh, (m)ksh, yash, posh, (p)boshです
参考 https://unix.stackexchange.com/questions/145522/
特定のシェルの専用機能に依存する場合は明示しましょう(特にPOSIX準拠シェルではないfish, (t)csh等)
・POSIX準拠シェルのおすすめは?→多く使われているのはDebian/Ubuntu系のdashです
・bashでいいじゃん→bashがインストールされてない環境があります。環境によってデフォルトシェルの実体は異なります
Debian系 … dash CentOS系 … bash Alpine … busybox ash Android … mksh
FreeBSD … ash Solaris,OpenBSD … ksh
macOS … bash(Single UNIX Specification準拠のために一部動作が異なる)
・macOSはzshなんだよね?→ログインシェルがzshに変わっただけで/bin/shはbash 3.2です
・シェルスクリプトは可搬性を持たせるために可能な限りPOSIXに準拠しましょう
仕様 http://pubs.opengroup.org/onlinepubs/9699919799/
・シバンになにを使えばいいの?→POSIX準拠してるなら#!/bin/sh、bashなら#!/bin/bashか#!/usr/bin/env bash
・bash依存はなるべく避けましょう。自覚なきbashism。シバンが#!/bin/shなのにbashに依存する構文を使っていませんか?
・Bourneシェル(≒POSIXシェル)はPOSIX標準化前にUNIXで使われていたシェルで多くの亜種が存在します
Version 7 UNIXのshに一番近いのはOpenSolaris由来のHeirloom Bourne Shell、次点でSchily Bourne Shellのoboshです
Heirloom Bourne Shell: sh http://heirloom.sourceforge.net/sh.html
Schily Bourne Shell: obosh http://schilytools.sourceforge.net/bosh.html
歴史的資料 https://www.in-ulm.de/~mascheck/
・csh/tcshでのシェルスクリプトは*まったく推奨しません*
参考 http://www.speech-lab.org/~hiroki/csh-whynot.euc
・Linux/UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。Manページや各種リンクを見ましょう
・ワイルドカード・パターンは正規表現ではありません。正規表現の話題は正規表現スレへ
・シェル芸とシェルスクリプトは全く異なります
・シェルスクリプトのことをシェルってゆうな
3デフォルトの名無しさん
2021/10/06(水) 17:20:42.12ID:XJEs7oM2 2ゲット
4デフォルトの名無しさん
2021/10/08(金) 03:54:38.51ID:LzOvy0cf 3げと
5デフォルトの名無しさん
2021/10/09(土) 07:02:28.75ID:F/g3bnt2 げっとわいるど
6デフォルトの名無しさん
2021/10/12(火) 17:53:02.51ID:elEZT6pO つーか真偽値の問題じゃなくて
シェルスクリプトのifが終了ステータスを判断するコマンドってだけだろ
シェルスクリプトのifが終了ステータスを判断するコマンドってだけだろ
7デフォルトの名無しさん
2021/10/12(火) 17:54:35.21ID:elEZT6pO あとシェル関数が返すのも終了ステータス
戻り値じゃない、そもそも終了ステータスしか返せないだろ
returnだからって他の言語のretruntを同じだと思うなよ
戻り値じゃない、そもそも終了ステータスしか返せないだろ
returnだからって他の言語のretruntを同じだと思うなよ
2021/10/12(火) 17:59:10.51ID:FcrICImt
>>6
だから真偽値の問題でしょw
お前、いい加減自分で何言ってるかわかってないだろw
それを言ったらC言語のifだって値を判断するだけのコマンド(文)って
なっちゃうだろwww
だれかがboolean型持ち出したから、混乱してんのかもしれないけど、
昔のC言語にはそんな型ねーからな?w
だから真偽値の問題でしょw
お前、いい加減自分で何言ってるかわかってないだろw
それを言ったらC言語のifだって値を判断するだけのコマンド(文)って
なっちゃうだろwww
だれかがboolean型持ち出したから、混乱してんのかもしれないけど、
昔のC言語にはそんな型ねーからな?w
2021/10/12(火) 18:01:19.29ID:FcrICImt
結局、Cでも(その他でも)シェルスクリプトでさえも、
ifってのは式の値を真偽に判断するものなんだよ。
ifってのは式の値を真偽に判断するものなんだよ。
2021/10/12(火) 18:04:36.01ID:FcrICImt
だから、シェルスクリプトが他と違って特殊なのは、
式の値を0の場合を真と判断するところ、だけだよ。
それがexit statusであるかとかは全く関係がない。
要点はそこだけ。
式の値を0の場合を真と判断するところ、だけだよ。
それがexit statusであるかとかは全く関係がない。
要点はそこだけ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 事実上の減反政策を法定化へ 農水省方針 「需要に応じた生産」推進 ★2 [蚤の市★]
- 【このハゲーっ!】参政党・豊田真由子氏がまたもや“事件”を起こしていた! 「要望が通らないと態度を豹変させ、大声を張り上げて…」 [ぐれ★]
- 【サッカー】運命のW杯抽選会、NHK総合が生中継&DAZNが無料ライブ配信! 今夜 12月5日(金)26時〜 [阿弥陀ヶ峰★]
- 高市早苗首相、人口減少問題で「地方は東京を見習って」発言に違和感 鳥取・平井知事、県議会で言及 ★3 [Hitzeschleier★]
- 渡邊渚『日本は男性の性欲に甘い国』「女性をどうやって騙して呼び出すか力説するおじさん」日本で多発する性的搾取について思うこと ★6 [Ailuropoda melanoleuca★]
- 10月の実質消費支出3.0%減 6カ月ぶりマイナス、車購入費押し下げ [蚤の市★]
- 【悲報】高市政権、超富裕層の追加課税、現行所得30億円から1億円に引き下げで増税 [733893279]
- 【高市悲報】医療費未払い、98.5%は日本人で外国人の方がしっかり払っていた。誇らしい😤 [359965264]
- 高市内閣、事実上の減反政策を法定化へ「需要に応じた生産」推進。政権が代わってもコメ政策を安易に転換させない狙い [256556981]
- 【おこめ】おこめ券、市長に「目的がわからない」「商品券でよくね?」と言われてしまう [399583221]
- 【香川】14歳日本人男子中学生、レイプグループを作り集団で強姦事件を繰り返し逮捕。もう終わりだろこの国 [485187932]
- 高市「ひらめいた!東京の税収を地方に配分するわ」 [219241683]
