シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
前スレ: シェルスクリプト総合 その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
レス数が900を超えています。1000を超えると表示できなくなるよ。
2021/02/25(木) 09:20:14.64ID:ZyJLXTlk
839デフォルトの名無しさん
2021/08/06(金) 19:29:06.94ID:mgQwZ+tq dashで>>832見たとき試した時は、
a b c
になったけど、しばらくしたらなぜかw、
a
になるようになった、にしかならないようになった
とりあえず、現在は a b c は気のせい/何かの間違いだなと思ってるw
(多分なんかの環境値かなあ??)
メイン環境ではこんなんだったけど、ほぼあんま使わないクリーンに近いUbuntu(VM)でも a だからな
zshはデフォでは、
a b c
emulate posix でも a b c、emulate bash で a
posix でも a になるべきなんだろうな
単に shwordsplit on にするだけだけど emulate posix 時オプションセットのバグかなあ
a b c
になったけど、しばらくしたらなぜかw、
a
になるようになった、にしかならないようになった
とりあえず、現在は a b c は気のせい/何かの間違いだなと思ってるw
(多分なんかの環境値かなあ??)
メイン環境ではこんなんだったけど、ほぼあんま使わないクリーンに近いUbuntu(VM)でも a だからな
zshはデフォでは、
a b c
emulate posix でも a b c、emulate bash で a
posix でも a になるべきなんだろうな
単に shwordsplit on にするだけだけど emulate posix 時オプションセットのバグかなあ
840デフォルトの名無しさん
2021/08/06(金) 19:38:55.34ID:rcBy4jaU 自分のミスを素直に認められるようになろうな
841デフォルトの名無しさん
2021/08/06(金) 21:35:38.59ID:mgQwZ+tq 俺は ID:j92KspJx でないからな
842デフォルトの名無しさん
2021/08/06(金) 23:44:34.47ID:j92KspJx843デフォルトの名無しさん
2021/08/07(土) 01:06:35.02ID:m9mcPIVQ お前もある意味勘違い(他の環境でなり試せばわかること)で騒いでいたんだから、
何をなんかその嫌らしいことすんなよ
何をなんかその嫌らしいことすんなよ
844デフォルトの名無しさん
2021/08/07(土) 01:06:57.62ID:m9mcPIVQ 俺は ID:mgQwZ+tq なw
845デフォルトの名無しさん
2021/08/07(土) 01:50:03.69ID:m9mcPIVQ >>839
>emulate posix でも a b c、emulate bash で a
>posix でも a になるべきなんだろうな
>単に shwordsplit on にするだけだけど emulate posix 時オプションセットのバグかなあ
posix shell を emulate する場合は posix ではなく sh か
じゃあ、psoix はなんなんねん、イマイチわからない。もしかしてそんなの無いとかか??w
emulate sh にしたら、
shwordsplit on
になるかと思いきや、
noshwordsplit off
って、shwordsplitに変わってnoshwordsplitに(同じだが)。そんなにoffに拘りたいのか
なかなかクセが強い感じw
ほぼzshネタ。でも、zshでposix shell互換にするにはというお話でした
>emulate posix でも a b c、emulate bash で a
>posix でも a になるべきなんだろうな
>単に shwordsplit on にするだけだけど emulate posix 時オプションセットのバグかなあ
posix shell を emulate する場合は posix ではなく sh か
じゃあ、psoix はなんなんねん、イマイチわからない。もしかしてそんなの無いとかか??w
emulate sh にしたら、
shwordsplit on
になるかと思いきや、
noshwordsplit off
って、shwordsplitに変わってnoshwordsplitに(同じだが)。そんなにoffに拘りたいのか
なかなかクセが強い感じw
ほぼzshネタ。でも、zshでposix shell互換にするにはというお話でした
846デフォルトの名無しさん
2021/08/07(土) 03:07:17.12ID:UOc5M9xg zshでemulate bachfileってやったら
バッチファイルモードになったYO!
バッチファイルモードになったYO!
847デフォルトの名無しさん
2021/08/07(土) 08:27:51.67ID:m9mcPIVQ なる。 zsh|sh|ksh|csh だけか
以外ではエラーにならずに zsh が指定されたとみなすか
起動時とのでオプション変わるから別のオプションセットがセットされてんのかと思った
以外ではエラーにならずに zsh が指定されたとみなすか
起動時とのでオプション変わるから別のオプションセットがセットされてんのかと思った
848デフォルトの名無しさん
2021/08/07(土) 08:34:57.40ID:UOc5M9xg emulate cshってどこまでcshと互換性あるの?
cshのシェルスクリプトがzshで動くわけ?
cshのシェルスクリプトがzshで動くわけ?
849デフォルトの名無しさん
2021/08/07(土) 08:36:21.73ID:m9mcPIVQ >以外ではエラーにならずに zsh が指定されたとみなすか
いや、bash が指定されたら sh とみなすってのはあるみたいだな。例外か?
bash対応のチラっとあるからbash互換のオプションセットがあるのかと期待してた/思い込んでたんだけど、単に(例外的に) posix shell 互換にするだけなのね
いや、bash が指定されたら sh とみなすってのはあるみたいだな。例外か?
bash対応のチラっとあるからbash互換のオプションセットがあるのかと期待してた/思い込んでたんだけど、単に(例外的に) posix shell 互換にするだけなのね
850デフォルトの名無しさん
2021/08/07(土) 08:40:12.61ID:UOc5M9xg emulate "b型の血液が足りないんです!どなたか!どなたかいませんか?"
だったらshになるな。うん。
だったらshになるな。うん。
851デフォルトの名無しさん
2021/08/07(土) 08:41:49.65ID:m9mcPIVQ >>848
シェルオプションが変わるだけかなあ
一応、元々 ksh+tcsh で開発されてるし、cshの命令文も動いたりもするが、なんか全部ってわけじゃないなて結論で俺は確認はやめてた、以前
cshのオプションセットになったら、もっとちゃんと動くのかもしれないし大したことがないかもしれない、どうなんだろねw
シェルオプションが変わるだけかなあ
一応、元々 ksh+tcsh で開発されてるし、cshの命令文も動いたりもするが、なんか全部ってわけじゃないなて結論で俺は確認はやめてた、以前
cshのオプションセットになったら、もっとちゃんと動くのかもしれないし大したことがないかもしれない、どうなんだろねw
852デフォルトの名無しさん
2021/08/07(土) 08:42:50.92ID:m9mcPIVQ853デフォルトの名無しさん
2021/08/07(土) 08:44:08.17ID:UOc5M9xg cshの命令というかコマンド?は、互換関数でも作れば対応できるんじゃねと思ってるんであんまり気にしないんだが
cshの文法ってzshに組み込めるようなものなのかなって気になってる
cshよく知らんけど、文法自体が少ないのか?関数もなかったはずだよね
cshの文法ってzshに組み込めるようなものなのかなって気になってる
cshよく知らんけど、文法自体が少ないのか?関数もなかったはずだよね
854デフォルトの名無しさん
2021/08/07(土) 08:48:10.86ID:UOc5M9xg >>852
いやしらんてw
昔の人の実装者の気持ちになって考えたら
「お?これだけのパターンなら最初の一文字だけ比較すればいいんじゃね?俺天才じゃねwww」って
考えそうだなって思っただけ
なんつーか、手抜きだよなー。
あー、というかこれbash対応じゃなくて
bourne対応じゃね?bourne=shだし
いやしらんてw
昔の人の実装者の気持ちになって考えたら
「お?これだけのパターンなら最初の一文字だけ比較すればいいんじゃね?俺天才じゃねwww」って
考えそうだなって思っただけ
なんつーか、手抜きだよなー。
あー、というかこれbash対応じゃなくて
bourne対応じゃね?bourne=shだし
855デフォルトの名無しさん
2021/08/07(土) 08:50:44.33ID:UOc5M9xg bshのパターンも有るか。でもjshはzshだな
856デフォルトの名無しさん
2021/08/07(土) 08:58:13.11ID:m9mcPIVQ857デフォルトの名無しさん
2021/08/07(土) 10:53:52.05ID:231wocV5 ボーンシェル
コーンシェル
ゾーンシェル
ぞーーーーーん!
コーンシェル
ゾーンシェル
ぞーーーーーん!
858デフォルトの名無しさん
2021/08/07(土) 12:55:43.98ID:UOc5M9xg トリビア
1985年に日本で生まれたシェルがある
そのシェルは 2020年まで存在していた
その名も
1985年に日本で生まれたシェルがある
そのシェルは 2020年まで存在していた
その名も
859デフォルトの名無しさん
2021/08/07(土) 18:45:34.65ID:RMo9hPMi シェルじゃなくてシエル?
あ、これは1991年だった。
あ、これは1991年だった。
860デフォルトの名無しさん
2021/08/09(月) 01:48:03.65ID:Ln+AsnId キヤノン
キユーピー
シヤチハタ
富士フイルム
エドウイン
キユーピー
シヤチハタ
富士フイルム
エドウイン
861デフォルトの名無しさん
2021/08/09(月) 03:21:27.64ID:iQ+Egq/N 中川しようこ
862デフォルトの名無しさん
2021/08/09(月) 12:43:08.30ID:GX8oEfXz ビックカメラ
863デフォルトの名無しさん
2021/08/10(火) 04:05:37.98ID:dBGoRJhg >>858
オランダ産やんけ
オランダ産やんけ
864デフォルトの名無しさん
2021/08/10(火) 22:03:06.30ID:h61oVuOW カステラ
ゲーテ
ゲーテ
865デフォルトの名無しさん
2021/08/15(日) 22:01:32.56ID:iDzFR5O3 新しいシェルを作りたいのですが
どのアルファベットが空いてますか?
どのアルファベットが空いてますか?
866デフォルトの名無しさん
2021/08/15(日) 22:19:10.80ID:G/xk0WlY iとo
867デフォルトの名無しさん
2021/08/15(日) 23:21:43.56ID:ZsODeO33 bshとbashがあるくらいなんやから、一切気にしなきゃええんちゃう?w
勝てば官軍!
勝てばね!
ふつうは、戦える立場になれないけど!
勝てば官軍!
勝てばね!
ふつうは、戦える立場になれないけど!
868デフォルトの名無しさん
2021/08/16(月) 13:46:35.37ID:umL41p0T ishは止めれ
869デフォルトの名無しさん
2021/08/16(月) 23:50:00.46ID:sZNsU9Vp870デフォルトの名無しさん
2021/08/17(火) 00:52:16.82ID:/lTg0IsM じゃあoshで
871デフォルトの名無しさん
2021/08/17(火) 00:52:32.42ID:/lTg0IsM おいっしゅー!
872デフォルトの名無しさん
2021/08/17(火) 01:20:24.26ID:5M+zf85m Ош
873デフォルトの名無しさん
2021/08/22(日) 03:53:36.86ID:0Cz6ueFz Rustのメモリ安全性はボローチェッカーによって担保されているが、
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています
Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます
Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ
なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?
Nimの実験的特徴
著者: アンドレアス・ルンプ
バージョン: 1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html
Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる
「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています
Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます
Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ
なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?
Nimの実験的特徴
著者: アンドレアス・ルンプ
バージョン: 1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html
Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる
「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
874デフォルトの名無しさん
2021/08/22(日) 13:22:16.41ID:0Cz6ueFz Rustのメモリ安全性はボローチェッカーによって担保されているが、
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています
Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます
Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ
なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?
Nimの実験的特徴 バージョン1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html
第二プログラミング言語として Rust はオススメしません Nim をやるのです
https://wolfbash.hateblo.jp/entry/2017/07/30/193412
Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる
「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています
Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます
Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ
なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?
Nimの実験的特徴 バージョン1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html
第二プログラミング言語として Rust はオススメしません Nim をやるのです
https://wolfbash.hateblo.jp/entry/2017/07/30/193412
Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる
「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
875デフォルトの名無しさん
2021/08/31(火) 18:02:21.42ID:UqDTQOtm awkでデータの中にスペースを入れるにはどうしたらいいんでしょうか?
876デフォルトの名無しさん
2021/08/31(火) 18:14:12.67ID:UqDTQOtm "a b" "c d"
みたいなデータを読み取れませんか?
みたいなデータを読み取れませんか?
877デフォルトの名無しさん
2021/08/31(火) 18:41:30.09ID:zJL9bFvV "a b" と "c d" に分割したいのであれば GNU awk の FPAT を使って
gawk -vFPAT='"[^"]*"' '{ ... }'
なんてできるけど、ダブルクォートで囲まれた内部でダブルクォートが
使われる場合には。。。
gawk -vFPAT='"[^"]*"' '{ ... }'
なんてできるけど、ダブルクォートで囲まれた内部でダブルクォートが
使われる場合には。。。
878デフォルトの名無しさん
2021/08/31(火) 22:45:22.41ID:S8r07VdU Ruby では、CSV 列内の""(クォート文字)は、\" に、
列内の改行コード・カンマ(行区切り・列区切り文字)も、適切に処理される
列内に、CSVの特殊文字、行区切り・列区切り・クォート文字が無ければ、列はクォート文字で囲まれない。
もちろん無条件に、すべての列を囲んでもよい
require 'csv'
input = <<"EOT"
"a""a","b,b",あ
"c
c","d\nd"
EOT
p input_ary = CSV.parse( input ) # 2次元配列
#=> [ ["a\"a", "b,b", "あ"], ["c\nc", "d\nd"] ]
# 2次元配列を、CSV 文字列に変換する
csv_str = input_ary.map( &:to_csv ).join
puts csv_str
出力。元に戻る
"a""a","b,b",あ
"c
c","d
d"
列内の改行コード・カンマ(行区切り・列区切り文字)も、適切に処理される
列内に、CSVの特殊文字、行区切り・列区切り・クォート文字が無ければ、列はクォート文字で囲まれない。
もちろん無条件に、すべての列を囲んでもよい
require 'csv'
input = <<"EOT"
"a""a","b,b",あ
"c
c","d\nd"
EOT
p input_ary = CSV.parse( input ) # 2次元配列
#=> [ ["a\"a", "b,b", "あ"], ["c\nc", "d\nd"] ]
# 2次元配列を、CSV 文字列に変換する
csv_str = input_ary.map( &:to_csv ).join
puts csv_str
出力。元に戻る
"a""a","b,b",あ
"c
c","d
d"
879デフォルトの名無しさん
2021/09/03(金) 13:05:02.74ID:prpSRVT9 うわでた
880デフォルトの名無しさん
2021/09/18(土) 18:19:12.65ID:a1LlWfun 頭のおかしい人に以下のようなことを言われました
>>基本、スクレイピングは営業妨害との戦い。
>>どの本にも、そう書いてある。
>>スクレイピングを推奨する本はない
具体的な書籍名を教えてください
>>5ch は、マルチポスト禁止!
>>同じ質問を、複数のスレや外部のサイトに書いてはいけない
どこでそんなルールが決まっているのでしょうか?
>>基本、スクレイピングは営業妨害との戦い。
>>どの本にも、そう書いてある。
>>スクレイピングを推奨する本はない
具体的な書籍名を教えてください
>>5ch は、マルチポスト禁止!
>>同じ質問を、複数のスレや外部のサイトに書いてはいけない
どこでそんなルールが決まっているのでしょうか?
881デフォルトの名無しさん
2021/09/18(土) 18:28:53.74ID:6JilEPez 本人に聞けよ
882デフォルトの名無しさん
2021/09/18(土) 18:42:49.46ID:jUwIv+ht 随分偉そうな質問者だこと
883デフォルトの名無しさん
2021/09/18(土) 20:04:20.39ID:ra+RGGfj スクレイピングはサイト運営からすればボットと同じ迷惑行為。警告を無視して続ければ営業妨害に認定される可能性もある。
マルチポストはいわゆるネットマナーに反する行為。質問者がマルチポストを繰り返せばその質問者が「頭のおかしい人」と看做されるだろう。
マルチポストはいわゆるネットマナーに反する行為。質問者がマルチポストを繰り返せばその質問者が「頭のおかしい人」と看做されるだろう。
884デフォルトの名無しさん
2021/09/19(日) 10:51:23.48ID:xR+u8nco 技術的に無能だが一般常識にも無能なのはたまに居るな
885デフォルトの名無しさん
2021/09/19(日) 10:54:58.61ID:ZpH8FzBH シェルショッカーとリッチー大佐のお二人ですなw
886デフォルトの名無しさん
2021/09/21(火) 03:27:47.67ID:brXTSPi5 あと Ruby の基地外な
rubikitch のことじゃないよ
rubikitch のことじゃないよ
887デフォルトの名無しさん
2021/09/22(水) 14:28:08.32ID:Te29kBsr ニュースグループならクロスポストってのが出来たんだけどな
888デフォルトの名無しさん
2021/09/22(水) 14:42:56.06ID:RtQe+ZM1889デフォルトの名無しさん
2021/10/02(土) 09:12:44.17ID:AShvd7nN bash sample1.sh && sample2.sh
でsample.shがexitとかfalse的な感じだったらsample2.shは実行しない
という処理をするにはどうしたらいいのでしょうか・・?
でsample.shがexitとかfalse的な感じだったらsample2.shは実行しない
という処理をするにはどうしたらいいのでしょうか・・?
890デフォルトの名無しさん
2021/10/02(土) 09:30:28.85ID:AShvd7nN 補足です >>889
そもそもやりたいことはsample2.shの冒頭に
if 条件; then
echo "o"
fi
みたいな条件式が出てくるのですが
その条件は他のsample3.shでもsample4.shでも重複して出てくるので
分けたいなと思いました
そういう書き方があるのかな、と
そもそもやりたいことはsample2.shの冒頭に
if 条件; then
echo "o"
fi
みたいな条件式が出てくるのですが
その条件は他のsample3.shでもsample4.shでも重複して出てくるので
分けたいなと思いました
そういう書き方があるのかな、と
891デフォルトの名無しさん
2021/10/02(土) 11:10:29.57ID:AShvd7nN とりあえず自己解決?しました
外部読み込みで関数引き出すことにしました
しかしなぜか
if 関数1; then
echo "o"
else
echo "x"
fi
関数1の返り値が0のとき"o"、1のとき"x"となり
思ってたのと逆になりました
関数1 () {
return 0
}
外部読み込みで関数引き出すことにしました
しかしなぜか
if 関数1; then
echo "o"
else
echo "x"
fi
関数1の返り値が0のとき"o"、1のとき"x"となり
思ってたのと逆になりました
関数1 () {
return 0
}
892デフォルトの名無しさん
2021/10/02(土) 11:42:50.26ID:rSA8/7/e プロセスの終了ステータスと同じ思想
0を返すなら正常
0以外を返すなら異常
0を返すなら正常
0以外を返すなら異常
893デフォルトの名無しさん
2021/10/02(土) 12:39:57.86ID:AShvd7nN894デフォルトの名無しさん
2021/10/02(土) 14:45:07.98ID:lWVjrMOX >>891
逆ではない。それで良いのだ。
成功したら0を返すというUNIX等での昔からの慣習に従っているだけ。
if は動かしたコマンドや関数の終了ステータスが0なら成功したと認識して then の後を実行しようとするように作られている。
逆ではない。それで良いのだ。
成功したら0を返すというUNIX等での昔からの慣習に従っているだけ。
if は動かしたコマンドや関数の終了ステータスが0なら成功したと認識して then の後を実行しようとするように作られている。
895デフォルトの名無しさん
2021/10/02(土) 14:47:33.71ID:lWVjrMOX ってリロード忘れて書いたら既に答えが書かれて話が終わっていたorz
896デフォルトの名無しさん
2021/10/02(土) 15:12:31.16ID:HPoADLry897デフォルトの名無しさん
2021/10/02(土) 15:39:19.39ID:yaQQxYBO シェルスクリプト内で return true とか書ければいいんだが。
引数なしの return はその直前のコマンドの戻り値を戻すので
true ; return
とか
return $(true)
って感じか?
引数なしの return はその直前のコマンドの戻り値を戻すので
true ; return
とか
return $(true)
って感じか?
898デフォルトの名無しさん
2021/10/02(土) 15:52:06.48ID:yaQQxYBO true=0 ; false=1 って定義しておいて return $true もあるか
899デフォルトの名無しさん
2021/10/02(土) 16:16:47.40ID:qz0ghb/n900デフォルトの名無しさん
2021/10/02(土) 16:38:14.15ID:HPoADLry901デフォルトの名無しさん
2021/10/02(土) 17:40:54.85ID:yaQQxYBO >>900
(実装上は?ではあるが)C言語で言う \0 や NULL は必ずしもゼロではないから
ハードコーティングするな、みたいな話と同じでは?
C言語で EXIT_SUCCESS がマクロ定義されているのと同じでは?
あとシェルスクリプトで EXIT_SUCCESS って定義されてる?
(実装上は?ではあるが)C言語で言う \0 や NULL は必ずしもゼロではないから
ハードコーティングするな、みたいな話と同じでは?
C言語で EXIT_SUCCESS がマクロ定義されているのと同じでは?
あとシェルスクリプトで EXIT_SUCCESS って定義されてる?
902デフォルトの名無しさん
2021/10/02(土) 18:23:30.06ID:R5KX+nmU >>896
0はfalsy, 1はtruthy
0はfalsy, 1はtruthy
903デフォルトの名無しさん
2021/10/02(土) 18:40:53.09ID:A8TEcsRS904デフォルトの名無しさん
2021/10/02(土) 18:54:39.94ID:a5sjMDOS >>901
\0はゼロだよねぇ?
\0はゼロだよねぇ?
905デフォルトの名無しさん
2021/10/02(土) 19:00:42.14ID:HPoADLry906デフォルトの名無しさん
2021/10/02(土) 19:08:57.75ID:HPoADLry907デフォルトの名無しさん
2021/10/02(土) 23:25:16.60ID:yaQQxYBO908デフォルトの名無しさん
2021/10/02(土) 23:47:19.06ID:HPoADLry >>907
おまえが勝手に勘違いして決めつけとるだけや。w
0は「TRUE」をあらわすのではない。
ただの「0」や。
シェルとかでは一般的に、0を成功と見なすことにしとるだけ。
プログラムによってはあえて、1なら成功半分失敗半分、2なら超失敗、みたいにしてもええ。
おまえが勝手に勘違いして決めつけとるだけや。w
0は「TRUE」をあらわすのではない。
ただの「0」や。
シェルとかでは一般的に、0を成功と見なすことにしとるだけ。
プログラムによってはあえて、1なら成功半分失敗半分、2なら超失敗、みたいにしてもええ。
909デフォルトの名無しさん
2021/10/03(日) 01:12:15.52ID:xAO5mPIE910デフォルトの名無しさん
2021/10/03(日) 01:52:00.50ID:prztZm/y911デフォルトの名無しさん
2021/10/03(日) 21:33:19.87ID:lRGZaQA9 Makefileのコマンド部分のインデントにタブ以外つかえないの地味にツライです
912デフォルトの名無しさん
2021/10/03(日) 23:29:34.04ID:53YOJQpZ913デフォルトの名無しさん
2021/10/04(月) 00:19:02.66ID:zDusbFKv914デフォルトの名無しさん
2021/10/04(月) 00:38:06.79ID:68bdvZVH 郷に入っては郷に従え
915デフォルトの名無しさん
2021/10/04(月) 04:16:49.89ID:hDmlyFvp >return 0 が C言語とシェルスクリプトで意味が真逆
え?
え?
916デフォルトの名無しさん
2021/10/04(月) 11:18:50.12ID:k4THeifQ main()のreturnに関してはshと一緒だが
returnに限らずifや論理演算で使うときの0/0以外は意味が真逆って話ですかね
どうするもこうするも、脳内で切り替えるしかないのでは
returnに限らずifや論理演算で使うときの0/0以外は意味が真逆って話ですかね
どうするもこうするも、脳内で切り替えるしかないのでは
917デフォルトの名無しさん
2021/10/04(月) 11:27:18.04ID:up54+LrH 言語によって切り替えるのが普通の人だ
918デフォルトの名無しさん
2021/10/04(月) 11:56:33.52ID:jGq6SyTd 動的に変数名を作ってそのまま使用するのってどうやるのでしょうか
val_a="aaa"
val_b="bbb"
ary=( "a" "b" )
for s in ${ary[@]}; do
echo ${val_$s}
done
だとbad substitutionでした
val_a="aaa"
val_b="bbb"
ary=( "a" "b" )
for s in ${ary[@]}; do
echo ${val_$s}
done
だとbad substitutionでした
919デフォルトの名無しさん
2021/10/04(月) 14:30:02.14ID:hDmlyFvp >>916
成功(0)失敗(0以外、だいたい負数もしくは-1) と 真(0以外もしくは1)偽(0) があるが、真偽しか知らないとかかな
C には main 以外にも 成功失敗 を返す関数はいっぱいある。もちろん成功失敗/真偽以外のを返すのもは言わずもがなだが。Cという言語でさえ何の関数でで切り替えなきゃ C 使えないだろうにな
シェルスクリプトは成功失敗でしかないからなwhileやifなどの基本的な制御文は
成功(0)失敗(0以外、だいたい負数もしくは-1) と 真(0以外もしくは1)偽(0) があるが、真偽しか知らないとかかな
C には main 以外にも 成功失敗 を返す関数はいっぱいある。もちろん成功失敗/真偽以外のを返すのもは言わずもがなだが。Cという言語でさえ何の関数でで切り替えなきゃ C 使えないだろうにな
シェルスクリプトは成功失敗でしかないからなwhileやifなどの基本的な制御文は
920デフォルトの名無しさん
2021/10/04(月) 14:57:35.57ID:fSDY+8CH eval echo "¥${val_${s}}"
921デフォルトの名無しさん
2021/10/04(月) 15:01:04.22ID:TUhdMDNq val="val_$s"
echo "${!val}"
echo "${!val}"
922デフォルトの名無しさん
2021/10/04(月) 15:29:45.66ID:zDusbFKv >>919
> シェルスクリプトは成功失敗でしかないからなwhileやifなどの基本的な制御文は
いや、それはCも同じや。w
条件部に任意の式を書けるだけ。
そいつは、物事をムリヤリにでも単純化したいだけやと思う。
まあ、気持ちはわからんでもない。
ワイにもそういうときはあった。
初心者かつ理想主義者ならではなんかね。
> シェルスクリプトは成功失敗でしかないからなwhileやifなどの基本的な制御文は
いや、それはCも同じや。w
条件部に任意の式を書けるだけ。
そいつは、物事をムリヤリにでも単純化したいだけやと思う。
まあ、気持ちはわからんでもない。
ワイにもそういうときはあった。
初心者かつ理想主義者ならではなんかね。
923デフォルトの名無しさん
2021/10/04(月) 16:21:38.67ID:hDmlyFvp >>922
C は 成功失敗 とかではなく、評価式の結果の値が 0かそれ以外か だけど
原典のK&Rに書いてある通り
真偽 Booleanと言えるが そもそもはBooleanが無いから 0かそれ以外か だな
シェルスクリプトはモロに成功失敗でしかないから、true「コマンド」のexit statusが 0=成功 でそれで成り立ってるんだけど
C は 成功失敗 とかではなく、評価式の結果の値が 0かそれ以外か だけど
原典のK&Rに書いてある通り
真偽 Booleanと言えるが そもそもはBooleanが無いから 0かそれ以外か だな
シェルスクリプトはモロに成功失敗でしかないから、true「コマンド」のexit statusが 0=成功 でそれで成り立ってるんだけど
924デフォルトの名無しさん
2021/10/04(月) 16:30:51.81ID:zDusbFKv925デフォルトの名無しさん
2021/10/04(月) 16:42:05.78ID:hDmlyFvp >>924
Cも知らないのに何言ってるんだかなとしか思えん
シェルスクリプトが扱うコマンドはCで書かれてもいての EXIT_SUCCESS ってあるんだけど。もちろんシェルスクリプトはその値をもベースにしてる
判定は真逆だろうに、Cと同じって何を言っているのだか
C
if( 評価式 )
判定式の結果値が 「0でなかったら」
シェルスクリプト
if コマンド; then
コマンドの EXIT STATUS が 「0だったら」
testコマンドも同じ、評価した結果が 成功か失敗 でしかない。EXIT STATUSはそういうもんだから...なんてCでなんか書いたことあるなら当然知っているだろう
Cも知らないのに何言ってるんだかなとしか思えん
シェルスクリプトが扱うコマンドはCで書かれてもいての EXIT_SUCCESS ってあるんだけど。もちろんシェルスクリプトはその値をもベースにしてる
判定は真逆だろうに、Cと同じって何を言っているのだか
C
if( 評価式 )
判定式の結果値が 「0でなかったら」
シェルスクリプト
if コマンド; then
コマンドの EXIT STATUS が 「0だったら」
testコマンドも同じ、評価した結果が 成功か失敗 でしかない。EXIT STATUSはそういうもんだから...なんてCでなんか書いたことあるなら当然知っているだろう
926デフォルトの名無しさん
2021/10/04(月) 16:47:03.61ID:jGq6SyTd927デフォルトの名無しさん
2021/10/04(月) 17:25:08.90ID:seuesddr [ ] がコマンドだって知らない人がいるのかな?
シェルスクリプトの真偽はCと同じですよ
コマンドの終了ステータスはCもシェルスクリプトも0が正常、0以外が異常
echo $((2 > 1))
1
↑の通りシェルスクリプトの真は1
シェルスクリプトの真偽はCと同じですよ
コマンドの終了ステータスはCもシェルスクリプトも0が正常、0以外が異常
echo $((2 > 1))
1
↑の通りシェルスクリプトの真は1
928デフォルトの名無しさん
2021/10/04(月) 17:32:53.14ID:68bdvZVH read()って0が正常なんだっけ?
929デフォルトの名無しさん
2021/10/04(月) 17:43:03.44ID:hDmlyFvp >>927
真(0以外もしくは1)偽(0) だけだと思うから、変なこと言い出しただけだろう
成功(0)失敗(0以外、だいたい負数もしくは-1) もあり、シェルスクリプトは 成功失敗 でしかないって話だよ
「真偽はCと同じ」とか言い出すから...w 2分岐でしかないとこのを真偽と言いたいのかな?
シェルスクリプトの制御文はEXIT STATUSしか見ないから、そんな例は無意味だろう
普通 if 文は 真/正 だったら〜でif分内に入るが、その例を持ち出してどう説明するの?
真(0以外もしくは1)偽(0) だけだと思うから、変なこと言い出しただけだろう
成功(0)失敗(0以外、だいたい負数もしくは-1) もあり、シェルスクリプトは 成功失敗 でしかないって話だよ
「真偽はCと同じ」とか言い出すから...w 2分岐でしかないとこのを真偽と言いたいのかな?
シェルスクリプトの制御文はEXIT STATUSしか見ないから、そんな例は無意味だろう
普通 if 文は 真/正 だったら〜でif分内に入るが、その例を持ち出してどう説明するの?
930デフォルトの名無しさん
2021/10/04(月) 17:57:13.20ID:zDusbFKv >>925
EXIT_SUCCESSとかはただの超後付けやぞ?w
もともとそんなもんはなかった。
条件判定は、判定が逆なだけで、やってることが同じ。
成功か失敗かではなく、値しか参照してない。
読解力がないヤツはめんどいな。。。
ま、いいけど。では、これにて。
EXIT_SUCCESSとかはただの超後付けやぞ?w
もともとそんなもんはなかった。
条件判定は、判定が逆なだけで、やってることが同じ。
成功か失敗かではなく、値しか参照してない。
読解力がないヤツはめんどいな。。。
ま、いいけど。では、これにて。
931デフォルトの名無しさん
2021/10/04(月) 18:03:18.56ID:hDmlyFvp932デフォルトの名無しさん
2021/10/04(月) 18:08:15.93ID:hDmlyFvp 成功(0)失敗(0以外、だいたい負数もしくは-1)
というのは太古から存在してるというのを、元々のやつはおろかそいつに反発(?)してるやつもどうやら知らないらしい...
何で知らないのか理解できない、Cに限らず他の言語でもあるのに
というのは太古から存在してるというのを、元々のやつはおろかそいつに反発(?)してるやつもどうやら知らないらしい...
何で知らないのか理解できない、Cに限らず他の言語でもあるのに
933デフォルトの名無しさん
2021/10/04(月) 18:16:05.28ID:hDmlyFvp >>931
誤 >>927の最初に
正 >>919の最初に
失礼
と、わかりやすそうなの探してきたぞ,
https://en.wikipedia.org/wiki/Exit_status
をよく読んでみ
誤 >>927の最初に
正 >>919の最初に
失礼
と、わかりやすそうなの探してきたぞ,
https://en.wikipedia.org/wiki/Exit_status
をよく読んでみ
934デフォルトの名無しさん
2021/10/04(月) 19:13:01.03ID:seuesddr >>929
何がいいたいのかさっぱり
if [ $bool = 1 ]; then
で真だったらって書けるやろ
分かりづらいって言うなら
TRUE=1
if [ $bool = $TRUE ]; then
でもいいし
何がいいたいのかさっぱり
if [ $bool = 1 ]; then
で真だったらって書けるやろ
分かりづらいって言うなら
TRUE=1
if [ $bool = $TRUE ]; then
でもいいし
935デフォルトの名無しさん
2021/10/04(月) 19:20:57.93ID:hDmlyFvp >>934
>[ ] がコマンドだって知らない人がいるのかな?
と言い出したのに...本当に自分ではわかってるのか疑わしいぞ
if文=シェルスクリプトが判断してるのは その評価式=ではなく評価式を評価したtestコマンドの EXIT STATUS = 成功失敗 でしかないって
本当にわからない人だなあ
Booleanなのに true とか 1 と比較するのはどうなの、というのは個人の好みだが、こうも書ける。関係ないけど
bool=true or fasle
if $bool; then
...
よりシェルスクリプト基本に添ってると思うけどなw そのある意味オレオレよりは
>[ ] がコマンドだって知らない人がいるのかな?
と言い出したのに...本当に自分ではわかってるのか疑わしいぞ
if文=シェルスクリプトが判断してるのは その評価式=ではなく評価式を評価したtestコマンドの EXIT STATUS = 成功失敗 でしかないって
本当にわからない人だなあ
Booleanなのに true とか 1 と比較するのはどうなの、というのは個人の好みだが、こうも書ける。関係ないけど
bool=true or fasle
if $bool; then
...
よりシェルスクリプト基本に添ってると思うけどなw そのある意味オレオレよりは
936デフォルトの名無しさん
2021/10/04(月) 19:34:13.89ID:hDmlyFvp >シェルスクリプトが判断してるのは
シェル(シェルスクリプトインタープリター)が判断してるのかか
なんかあったw K&R 初版にすでに
The program also uses the standard library function exit, which ter-minates program execution when it is called. The argument of exit is available to whatever process called this one, so the success or failure of the program can be tested by another program that uses this one as a sub, process.
By convention, a return value of 0 signals that all is well, and vari-ous non-zero values signal abnormal situations.
って書いてある
Cが何のために作られたか、シェルスクリプトも何のために作られたか、それぐらいわかってはいるだろうから、この短文だけで「読める」だろう(自分勝手な理解を置いておけば)と思いたい
シェル(シェルスクリプトインタープリター)が判断してるのかか
なんかあったw K&R 初版にすでに
The program also uses the standard library function exit, which ter-minates program execution when it is called. The argument of exit is available to whatever process called this one, so the success or failure of the program can be tested by another program that uses this one as a sub, process.
By convention, a return value of 0 signals that all is well, and vari-ous non-zero values signal abnormal situations.
って書いてある
Cが何のために作られたか、シェルスクリプトも何のために作られたか、それぐらいわかってはいるだろうから、この短文だけで「読める」だろう(自分勝手な理解を置いておけば)と思いたい
937デフォルトの名無しさん
2021/10/04(月) 19:49:22.53ID:seuesddr938デフォルトの名無しさん
2021/10/04(月) 19:50:42.83ID:seuesddr > Booleanなのに true とか 1 と比較するのはどうなの、というのは個人の好みだが、
シェルスクリプトが真で1を返してるんだからしょうがない
echo $((2 > 1))
1
FALSE=0で0以外だったら?と書いてもいいけどな
シェルスクリプトが真で1を返してるんだからしょうがない
echo $((2 > 1))
1
FALSE=0で0以外だったら?と書いてもいいけどな
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- パワフル女性世界3位に高市首相 米誌フォーブス選出 [蚤の市★]
- 【米FRB】0.25%利下げ決定 3会合連続、雇用下支え [蚤の市★]
- テレ朝本社から社外スタッフの男性が転落し死亡 テレビ朝日がコメント [ひかり★]
- 【S.RIDE】「忘年会の幹事ずるい」 ソニー系配車アプリの広告が物議…… 運営が謝罪「配慮に欠ける不適切な表現」掲出終了に [ぐれ★]
- アイヌ民族の「戸籍簿」がヤフオクで落札 団体「人権無視」と憤り [蚤の市★]
- 「身を切る改革」どこへ? 維新「身内」への公金支出、地方でも続々 [蚤の市★]
- 高市「野党はもう債権とか為替の話はしないで!よく分からないから答えない!」 [884040186]
- 豚汁の弱点
- 人生がつまらんやつ、130円で大根買え。
- 【悲報】教育ママ「ギャオオオオオン!息子が大麻吸ってるのお!!」⇨中3の息子を警察に突き出し全てを終わらせる [455031798]
- 【画像】東京都民「助けて!満員電車もう無理いいぃぃいいぃぃぃいいいいいぃ😭」!!!! [732289945]
- 【堂上隼人】ソフトバンク幹部「よし更生してる」→現在までに逮捕12回、レイプ被害者15人
