[過去ログ] シェルスクリプト総合 その31 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
32: デフォルトの名無しさん [sage] 2019/08/11(日) 18:24:58.94 ID:++HFlOfG(12/35) AAS
へー、たしかに、macOS Mojaveのデフォルト(homebrewではない)のbash 3.2.57だと
echo -n hello が -n hello になるねw
これはひどいwww
なんでだろ。ちょっと調べてみるか。
その前に一言。だからPOSIX準拠で作れと言っただろー!
58(2): デフォルトの名無しさん [sage] 2019/08/11(日) 18:55:27.94 ID:k+c7cOcw(13/23) AAS
逃げるばっか。自分でMacも使ってるそのためにもPOSIXとかのたまってたのに
142(1): デフォルトの名無しさん [sage] 2019/08/19(月) 12:58:21.94 ID:IzREAmBO(2/2) AAS
>>141シェル「だけ」とは言っていない。
ここはシェルスクリプトのスレだから、シェルについて言っている。
POSIXについては>>22(3): デフォルトの名無しさん [sage] 2019/08/10(土) 23:19:50.86 ID:L+B8OP2P(2/5) AAS
お約束
・特記なき場合、POSIX 準拠の sh 可換シェルが既定です。(Bourne Shellは既にレガシーです)
つまりシバンは #!/bin/sh です。
特定のシェル(bash, zsh, (m|pd)ksh, (d)ash, yash, posh, fish, (t)csh など)の専用機能に依存する場合は明示しましょう。
macOS (10.14以前), GNU/Linux ユーザー(Debian, Ubuntu 系以外) は /bin/sh の実体が bash なので*特に*注意
自覚なき bashism---シバンが #!/bin/sh なのに bash に依存する構文を使っていませんか?
ただし Debian, Ubuntu などでは /bin/sh の実体は POSIX sh 互換の dash ですのであまり気にしないでも大丈夫です。
FreeBSD ユーザーは /bin/sh の実体が ash なので注意。
Solaris, OpenBSD ユーザーは /bin/sh の実体が ksh なので注意。
macOS 10.15以降のユーザーは/bin/sh の実体が zsh なので注意。
android ユーザーは /bin/sh の実体が mksh なので注意。
csh/tcshでのシェルスクリプトは*まったく推奨しません*。
(参考URL: 外部リンク[euc]:www.speech-lab.org)
・POSIX に準拠しましょう
有用なリンクは 外部リンク:en.wikipedia.org にまとめられています。
最新の仕様はこちらへ: 外部リンク:pubs.opengroup.org
(左上の「Shell & Utilities」から各コマンドやファイルの仕様を参照することができます)
・Version 7 UNIX の sh(1) に一番近いのは OpenSolaris 由来の Heirloom sh、次点で Debian などに搭載されている Dash shell
Heirloom sh: 外部リンク[html]:heirloom.sourceforge.net
Dash shell: 外部リンク:gondor.apana.org.au
・UNIX にはシェルスクリプトに便利な小さなコマンドがいろいろあります
Man ページや各種リンク(外部リンク[html]:pubs.opengroup.orgなど)を見ましょう。
apropos(1) ないしは man(1) の-kオプションでそれらしい単語による簡単な検索もできます。
・ワイルドカードは正規表現ではありません。
正規表現の話題はスレ違い(正規表現スレへ)
・シェルスクリプトのことをシェルってゆうな
を読めば分かる。
177: デフォルトの名無しさん [sage] 2019/08/20(火) 08:37:08.94 ID:JOMXhFk+(2/2) AAS
なんで重複しない行番号の順にソートして並びが入れ替わるんだよw
219(1): デフォルトの名無しさん [sage] 2019/08/21(水) 12:58:08.94 ID:23vMmTO3(1/13) AAS
>>218218(1): デフォルトの名無しさん [sage] 2019/08/21(水) 12:38:05.34 ID:tOxptV2F(1/6) AAS
> bashしか使わない人がbash依存して何か問題あるのかね
問題ないよ。なにを目的にbash依存してるのか聞いてるだけ
>>217217(3): デフォルトの名無しさん [sage] 2019/08/21(水) 12:37:03.95 ID:+hDHTeft(1) AAS
bashしか使わない人がbash依存して何か問題あるのかね
シェルに限らずLinuxしか使わない人が「Windowsでも動く」プログラムを書く必要はないし
(シェアの低い変なコンピュータ使ってる人はその人だけ苦労すればいい)
って言ってるだろう
bashを使い他を使うこともないから、わざわざ他を意識する調べることがないってことだろ
504: デフォルトの名無しさん [sage] 2019/09/01(日) 04:42:29.94 ID:YaEsaVCE(4/18) AAS
>>502502(2): デフォルトの名無しさん [sage] 2019/09/01(日) 04:40:50.68 ID:tx4fDw07(9/24) AAS
ん?
Bourne Shellに機能拡張した部分の最低限の共通仕様
Bourne Shellありき
どこのぞのバージョンが、それに a b c etc... な機能を追加
どこのぞのバージョンが、それに b c d etc... な機能を追加
Bourne Shell + b + c = POSIX
という意味だろう>>480のいう最低限の共通仕様は
どう、日本語になってないの?
Bourne Shellに機能拡張した「部分」
の部分とはどこの部分?
その「部分」の「最低限の」「共通仕様」がPOSIXなんでしょ?
986: デフォルトの名無しさん [sage] 2019/10/26(土) 15:54:12.94 ID:0I+FrAtF(3/8) AAS
>>975975(3): デフォルトの名無しさん [sage] 2019/10/26(土) 11:29:02.54 ID:3fttRo5u(5/9) AAS
質問が出てる時点で、意図がわからないコードってことなんだがw
957 名前:デフォルトの名無しさん[sage] 投稿日:2019/10/24(木) 17:49:17.77 ID:mthfJT/n [2/3]
>>954
それってTRUE=0とするのと何が違うの?
それに>>954ののコードは、set -eで正しく動かない
TRUE=$([ 0 = 0 ];echo $?)
FALSE=$([ ! $TRUE ];echo $?)
意図が不明確なコードを書いて、バグを入れるのは
アホでしか無いよ
set +e
TRUE=$([ 0 = 0 ];echo $?)
FALSE=$([ ! $TRUE ];echo $?)
set -e
動かんと言ってる方がアホだと思う
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.045s