シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
前スレ: シェルスクリプト総合 その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
2021/02/25(木) 09:20:36.91ID:ZyJLXTlk
・特記なき場合、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ページや各種リンクを見ましょう
・ワイルドカード・パターンは正規表現ではありません。正規表現の話題は正規表現スレへ
・シェル芸とシェルスクリプトは全く異なります
・シェルスクリプトのことをシェルってゆうな
2021/02/25(木) 18:11:17.11ID:w3Ud6BUK
知ってるガススタのことだよね
2021/02/26(金) 02:56:16.05ID:BSvPs2+3
資源メジャーをカススタとか、視野の狭い奴は生きてて恥ずかしくないのかな
2021/02/28(日) 14:32:38.25ID:BgTYpoJY
なんだか誤解を招く表現ばかりだけど、
https://gigazine.net/news/20210227-posix-parallel-shells-xargs/
2GBをzip圧縮するような重たい処理を並列化する場合は、pthreadよりxargsのほうが、"僅かに"有利なようだ
https://gigazine.net/news/20210227-posix-parallel-shells-xargs/
2GBをzip圧縮するような重たい処理を並列化する場合は、pthreadよりxargsのほうが、"僅かに"有利なようだ
2021/02/28(日) 14:53:29.82ID:797yScED
xargsやparallelのほうが簡単
job control的にはparallelのほうが優れてたはず
job control的にはparallelのほうが優れてたはず
2021/02/28(日) 14:54:49.97ID:JYcgL82Q
xargsってPOSIXでは作れない機能でも使ってるの?
xargsってFreeBSDでもmacOSでも動くよね?
xargsってFreeBSDでもmacOSでも動くよね?
2021/02/28(日) 15:01:05.15ID:XNBptB7O
>>5
> 2GBをzip圧縮するような重たい処理を並列化する場合は、pthreadよりxargsのほうが、"僅かに"有利なようだ
当たり前じゃね? スレッド切り替えのオーバーヘッドがないんだから
マルチコア(マルチCPU)なら複数プロセスで実行したほうが速いでしょ?
> 2GBをzip圧縮するような重たい処理を並列化する場合は、pthreadよりxargsのほうが、"僅かに"有利なようだ
当たり前じゃね? スレッド切り替えのオーバーヘッドがないんだから
マルチコア(マルチCPU)なら複数プロセスで実行したほうが速いでしょ?
2021/02/28(日) 15:07:08.34ID:XNBptB7O
つまりこれはマルチスレッド vs マルチプロセスの話で
一般的にはマルチスレッドの方がパフォーマンスは良いが
マルチスレッドだと共有リソースの排他制御などをする必要があるから
共有リソースがない場合はマルチプロセスのほうがパフォーマンスが良くて
POSIXとはなんの関係もないよねって意味ね
一般的にはマルチスレッドの方がパフォーマンスは良いが
マルチスレッドだと共有リソースの排他制御などをする必要があるから
共有リソースがない場合はマルチプロセスのほうがパフォーマンスが良くて
POSIXとはなんの関係もないよねって意味ね
2021/02/28(日) 15:11:12.46ID:XNBptB7O
>>5
> 2GBをzip圧縮するような重たい処理を並列化する場合は
2GB・・・関係ない
zip圧縮・・・関係ない
重たい処理・・・関係ない
> pthreadよりxargsのほうが、"僅かに"有利なようだ
xargs・・・関係ない
共有リソースがなくて排他制御をする必要がない処理を並列化する場合は
マルチスレッドよりマルチプロセスで実装したほうが、"僅かに"有利なようだ
これが正しいかな
> 2GBをzip圧縮するような重たい処理を並列化する場合は
2GB・・・関係ない
zip圧縮・・・関係ない
重たい処理・・・関係ない
> pthreadよりxargsのほうが、"僅かに"有利なようだ
xargs・・・関係ない
共有リソースがなくて排他制御をする必要がない処理を並列化する場合は
マルチスレッドよりマルチプロセスで実装したほうが、"僅かに"有利なようだ
これが正しいかな
2021/02/28(日) 15:15:22.13ID:0S62sz9G
POSIXによって能力を制限されてるって書いてあるけど
https://linuxjm.osdn.jp/html/LDP_man-pages/man7/standards.7.html
> POSIX.1c
> IEEE Std 1003.1c-1995. POSIX スレッドインターフェースについて記載している。
POSIXスレッドは1995年?ぐらいに登場した新しいPOSIXで
xargsで使われてるマルチプロセスはずっと前から使えるPOSIXじゃん?
POSIXで実装されてるのにPOSIXで能力を制限とか意味わからん
https://linuxjm.osdn.jp/html/LDP_man-pages/man7/standards.7.html
> POSIX.1c
> IEEE Std 1003.1c-1995. POSIX スレッドインターフェースについて記載している。
POSIXスレッドは1995年?ぐらいに登場した新しいPOSIXで
xargsで使われてるマルチプロセスはずっと前から使えるPOSIXじゃん?
POSIXで実装されてるのにPOSIXで能力を制限とか意味わからん
2021/02/28(日) 15:21:32.20ID:VQYtUoBE
2021/02/28(日) 15:31:23.99ID:N8V7r+yZ
2021/02/28(日) 16:02:00.25ID:CBZyHOS6
外国にもPOSIXを勘違いして解釈したPOSIX中心主義みたいな奴がいるんか?w
POSIXは主にC言語のインターフェースなんだから、POSIXで標準化されたコマンド以外でも
POSIXインターフェースを使って作られたコマンドもPOSIXに準拠してることになるんだって
POSIXは、POSIXで規定されたコマンドだけを使って
それ以外はシェルスクリプトで独自開発しましょうって規格じゃねーだろ?
POSIXのC言語のインターフェース使ってコマンド使ってもいいだろ?
そして自分じゃなくて誰かがOSSとかで作ったコマンドもバンバン使っていいだろ?
可搬性?OSSなら可搬性あるるからどこでも使えるコマンドだろ
POSIXは主にC言語のインターフェースなんだから、POSIXで標準化されたコマンド以外でも
POSIXインターフェースを使って作られたコマンドもPOSIXに準拠してることになるんだって
POSIXは、POSIXで規定されたコマンドだけを使って
それ以外はシェルスクリプトで独自開発しましょうって規格じゃねーだろ?
POSIXのC言語のインターフェース使ってコマンド使ってもいいだろ?
そして自分じゃなくて誰かがOSSとかで作ったコマンドもバンバン使っていいだろ?
可搬性?OSSなら可搬性あるるからどこでも使えるコマンドだろ
2021/02/28(日) 17:07:15.88ID:qG6bavOU
>>10
もしも時間のかからない処理だったら、プロセス生成にかかるコスト差のほうが上回るんじゃね?
もしも時間のかからない処理だったら、プロセス生成にかかるコスト差のほうが上回るんじゃね?
2021/02/28(日) 20:14:25.47ID:O8DyCWfa
これどうなんだろ、xargsの方は1プロセス1ファイルだけど、pigzは複数スレッド1ファイル
なんでしょ。
だったらpigzも1スレッド1ファイルで複数ファイルを同時処理するモードがあればどうなのかと。
いずれにせよ元の話はいろんな条件が混ざっていて気持ち悪い感じがする。
なんでしょ。
だったらpigzも1スレッド1ファイルで複数ファイルを同時処理するモードがあればどうなのかと。
いずれにせよ元の話はいろんな条件が混ざっていて気持ち悪い感じがする。
2021/02/28(日) 20:17:39.23ID:O8DyCWfa
GNUのxargsというのでじゃあPOSIXのxargsを考えると、
POSIXのxargsだと例えば引数の数を1にしても(-n1)、プロセスが並列には走らないのか。
waitを使うようなシェルスクリプトとかでGNU xargsの-Pと似たようなことはできるかな?
というわけでこのスレ的な流れに持っていけるかな? w
POSIXのxargsだと例えば引数の数を1にしても(-n1)、プロセスが並列には走らないのか。
waitを使うようなシェルスクリプトとかでGNU xargsの-Pと似たようなことはできるかな?
というわけでこのスレ的な流れに持っていけるかな? w
2021/02/28(日) 20:27:29.22ID:pff3D6mj
可哀想なのがおるな
2021/03/01(月) 03:10:12.92ID:UPXhvHyB
>>17
xargsはPOSIXじゃないぞ
xargsはPOSIXじゃないぞ
2021/03/01(月) 03:28:09.40ID:RTWwkQ1E
2021/03/01(月) 03:34:18.55ID:UPXhvHyB
あ、POSIXにあるのかw
ってことはxargsは使っていいけど-Pは
POSIXじゃないから使わないって言ってるのか?
ほんとPOSIX中心主義みたいなこと言ってるなw
ってことはxargsは使っていいけど-Pは
POSIXじゃないから使わないって言ってるのか?
ほんとPOSIX中心主義みたいなこと言ってるなw
2021/03/02(火) 15:59:01.27ID:NSMtG/TQ
この部分がどうしても繋がりません
if [ {find "$line" -maxdepth 1 -mindepth 1 -type d | wc -lc } -eq 0 ] ; then
echo "hoge"
fi
これがどうしても出来ません
find "$line" -maxdepth 1 -mindepth 1 -type d | wc -lcだけだと出来るんですが、それを演算式に繋げようとすると私が思いつく限りは何をどういじっても動きません
パイプを更に不等式で繋げるのがよくないと思うんですが
どうしたら直りますか?
if [ {find "$line" -maxdepth 1 -mindepth 1 -type d | wc -lc } -eq 0 ] ; then
echo "hoge"
fi
これがどうしても出来ません
find "$line" -maxdepth 1 -mindepth 1 -type d | wc -lcだけだと出来るんですが、それを演算式に繋げようとすると私が思いつく限りは何をどういじっても動きません
パイプを更に不等式で繋げるのがよくないと思うんですが
どうしたら直りますか?
23デフォルトの名無しさん
2021/03/02(火) 16:47:44.09ID:5tuGRxIW $()
2021/03/02(火) 16:50:56.84ID:kOL3oDu9
2021/03/02(火) 16:55:13.39ID:kOL3oDu9
まけた。。。
ちなみに、"$()"のほうが安心。
ちなみに、"$()"のほうが安心。
2021/03/02(火) 17:15:53.31ID:qy7/OUMA
だがwcを使うのがイケてない
27デフォルトの名無しさん
2021/03/02(火) 17:24:52.22ID:5tuGRxIW wcだと改行コードがね
2021/03/02(火) 18:08:15.82ID:qy7/OUMA
$ printf abc | wc -l
0
こうなるって話?
行数を数えるより良いロジックはなんだろうか
0
こうなるって話?
行数を数えるより良いロジックはなんだろうか
2021/03/02(火) 18:29:23.93ID:bIA4j74d
何にも該当するのがないかどうかって判断でしかないのに、余計なこと考えたんじゃね
wcを使うのがイケてないって他の行数を数える方法でなのか??
単に出力があるか無いかだけでかと思った
wcを使うのがイケてないって他の行数を数える方法でなのか??
単に出力があるか無いかだけでかと思った
2021/03/02(火) 18:41:11.07ID:bIA4j74d
-lc ってどっちやねんもあるか。それか?いや違うか
どっちかにしろってのは存在してるけど
どっちかにしろってのは存在してるけど
2021/03/02(火) 18:47:50.24ID:NSMtG/TQ
おお!
なんかエラーがそれっぽくなって近づきました
エスケープ文字で引っかかってる感じですけど
ありがとうです
なんかエラーがそれっぽくなって近づきました
エスケープ文字で引っかかってる感じですけど
ありがとうです
2021/03/02(火) 18:54:51.13ID:NSMtG/TQ
すいません
-lcのcはいつの間にか間違えて入ってしまってたみたいです
ただのミスです
申し訳ない
-lcのcはいつの間にか間違えて入ってしまってたみたいです
ただのミスです
申し訳ない
2021/03/02(火) 18:57:13.79ID:bIA4j74d
なる。いや、謝るほどでもない。でも、まあ、いいなその姿勢w
頑張れ
頑張れ
2021/03/02(火) 18:57:26.63ID:NSMtG/TQ
0にしてるのは簡易的なテストで
フォルダが1かつファイルが0ならば下層フォルダの階層を全部あげようとしてた感じでした
これもまたもっと良い方法があるのかもしれまん?
フォルダが1かつファイルが0ならば下層フォルダの階層を全部あげようとしてた感じでした
これもまたもっと良い方法があるのかもしれまん?
2021/03/02(火) 20:26:31.82ID:1DoNrFvk
$ printf abc | grep -c .
でええんちゃうちゃう
でええんちゃうちゃう
2021/03/02(火) 20:28:20.11ID:1DoNrFvk
あ、間違えた
$ printf abc | grep -c ''
だった
$ printf abc | grep -c ''
だった
2021/03/02(火) 21:37:15.67ID:11FPPCA/
>>34
>フォルダが1かつファイルが0
??
>下層フォルダの階層を全部あげようとしてた
?
調べるフォルダで内包するのがファイルも無くフォルダ一つ
って言っていることになると思うけど
ありそうなのは、中身空っぽのフォルダ だけど、それとは違うのか
調べるフォルダ(始点のフォルダ)直下のフォルダだけでなくそれ以下の階層でもの空のフォルダを探そうとしてる
ってことなのかなあ
>フォルダが1かつファイルが0
??
>下層フォルダの階層を全部あげようとしてた
?
調べるフォルダで内包するのがファイルも無くフォルダ一つ
って言っていることになると思うけど
ありそうなのは、中身空っぽのフォルダ だけど、それとは違うのか
調べるフォルダ(始点のフォルダ)直下のフォルダだけでなくそれ以下の階層でもの空のフォルダを探そうとしてる
ってことなのかなあ
2021/03/02(火) 21:38:12.22ID:gQx0ks5j
KARA「呼んだ?」
2021/03/07(日) 19:26:32.91ID:T3tOQ7Z+
こんな感じで
if [ "$source_line_10_first" -ne "$source_line_10_after" ] ; then
i=40
fi
ソースを引っ張ってきて比較するんですが、ソースはやはりエスケープ文字が多いので失敗します
シングルクォテーションでも思いつく限り括弧で括ってもダメでした
変数のエスケープ文字を無視する方法は何か無いですか?
if [ "$source_line_10_first" -ne "$source_line_10_after" ] ; then
i=40
fi
ソースを引っ張ってきて比較するんですが、ソースはやはりエスケープ文字が多いので失敗します
シングルクォテーションでも思いつく限り括弧で括ってもダメでした
変数のエスケープ文字を無視する方法は何か無いですか?
2021/03/07(日) 19:40:15.82ID:vyuBuDwH
41デフォルトの名無しさん
2021/03/07(日) 19:49:06.84ID:UqHHohgI 文字列に元々含まれてるシングルクォートだけ"で囲って
あとは文字列全体をシングルクォートで囲めばいいのでは
あとは文字列全体をシングルクォートで囲めばいいのでは
2021/03/07(日) 19:54:42.49ID:abZnd7wd
コンピューターサイエンスの難問:
・命名
・オフバイワン
・キャッシュインバリデーション
・文字のエスケープ(New!)
・命名
・オフバイワン
・キャッシュインバリデーション
・文字のエスケープ(New!)
2021/03/07(日) 20:00:22.61ID:quYd9iFF
2021/03/07(日) 20:09:21.95ID:vyuBuDwH
答える方もアホばかりやなw
素人がエスケープが〜と言っていたからって
それが原因だと思うな
素人がエスケープが〜と言っていたからって
それが原因だと思うな
2021/03/07(日) 20:41:29.78ID:PBQIZrIy
2021/03/07(日) 20:43:03.31ID:vyuBuDwH
素人の質問を真に受けるな、相手に情報を出させろ。アホどもが
2021/03/07(日) 21:28:47.98ID:UPuiYP7U
後で自分がわかったから偉そうにする馬鹿
2021/03/07(日) 23:47:36.62ID:T3tOQ7Z+
2021/03/08(月) 03:27:47.81ID:3+uDlPP2
だから最初から出力されてるエラーメッセージをわかると書いただろ
2021/03/08(月) 09:59:07.99ID:6lKYXbK2
>>49
人にやかましく言う前に、まともな日本語を書け!
人にやかましく言う前に、まともな日本語を書け!
2021/03/08(月) 10:09:07.56ID:3+uDlPP2
> ソースを引っ張ってきて比較するんですが
ソースを引っ張ってくるとは?
> ソースはやはりエスケープ文字が多いので失敗します
ソースにエスケープが多いとは
> シングルクォテーションでも思いつく限り括弧で括ってもダメでした
思いつきで書くんじゃなくて、正しい書き方を学べ
> 変数のエスケープ文字を無視する方法は何か無いですか?
変数のエスケープ文字とか意味が全くわからない
この初心者の意味不明な文章を真に受けて
レスするやつがいるんだもんなぁ
アホかと
ソースを引っ張ってくるとは?
> ソースはやはりエスケープ文字が多いので失敗します
ソースにエスケープが多いとは
> シングルクォテーションでも思いつく限り括弧で括ってもダメでした
思いつきで書くんじゃなくて、正しい書き方を学べ
> 変数のエスケープ文字を無視する方法は何か無いですか?
変数のエスケープ文字とか意味が全くわからない
この初心者の意味不明な文章を真に受けて
レスするやつがいるんだもんなぁ
アホかと
2021/03/08(月) 13:04:09.36ID:OXaKjPz6
結局あんなにレスしてるのに一つとしてまともな文を書けないのな
2021/03/08(月) 13:04:45.87ID:QR/il1w1
>>51
お前の指摘は「-eq を理解している事 前提」なんだよ
右も左もわからん奴は中学生レベルの英語のエラーメッセージを読む精神的な
余裕が無かったり、読んでも正しく解釈できない
お前のやり方は抽象的過ぎるわ「情報小出しにするな」的な基本でもないわで相手に全く届かず
会話に参加できていない
幾ら吠えてもムダ
お前の指摘は「-eq を理解している事 前提」なんだよ
右も左もわからん奴は中学生レベルの英語のエラーメッセージを読む精神的な
余裕が無かったり、読んでも正しく解釈できない
お前のやり方は抽象的過ぎるわ「情報小出しにするな」的な基本でもないわで相手に全く届かず
会話に参加できていない
幾ら吠えてもムダ
2021/03/08(月) 21:43:41.10ID:vBncgnCM
ある文字1文字が標準入力で与えられたときに
その文字がサロゲートペアであるかを判定するシェルスクリプトを教えてください
その文字がサロゲートペアであるかを判定するシェルスクリプトを教えてください
2021/03/08(月) 21:49:20.34ID:eBezB7N7
文字はodコマンドで1バイトずつに変換できる
あとはその数値を調べればいいだけ
あとはその数値を調べればいいだけ
2021/03/08(月) 21:58:22.39ID:0PSdEx+k
>>54
| 判定するプログラム
| 判定するプログラム
2021/03/09(火) 01:18:57.53ID:GjAck/b0
文字って正確には何のことじゃいな?
2021/03/09(火) 03:38:34.14ID:O1t/zxF9
コンピューターサイエンスの難問:
・命名
・オフバイワン
・キャッシュインバリデーション
・文字エンコーディング(New!)
・命名
・オフバイワン
・キャッシュインバリデーション
・文字エンコーディング(New!)
2021/03/10(水) 14:30:06.19ID:4EdeRuF3
!r posix shell
をDuckduckgoで検索
をDuckduckgoで検索
2021/03/16(火) 18:28:13.75ID:KSYjhM+z
行頭の任意の数の特定文字を、同じ数の別の特定文字に、sedで置換する方法はあるかな?
たとえば、次のようなテキストを
a aaa
aa aa
aaa a
次のように変更したい。
A aaa
AA aa
AAA a
次のようにだらだら書いたらできるけど、めんどくさいし、任意の数に対応できない。。。
s/^a¥s/A/;
s/^aa¥s/AA/;
s/^aaa¥s/AAA/;
...
たとえば、次のようなテキストを
a aaa
aa aa
aaa a
次のように変更したい。
A aaa
AA aa
AAA a
次のようにだらだら書いたらできるけど、めんどくさいし、任意の数に対応できない。。。
s/^a¥s/A/;
s/^aa¥s/AA/;
s/^aaa¥s/AAA/;
...
61デフォルトの名無しさん
2021/03/16(火) 18:57:27.90ID:4E4BJCoI IPF="対象のファイル.txt"
OPF="結果を出力するファイル.txt"
#最初のフィールドを抜き出し、aをAに変換
cat ${IPF} | cut -d' ' -f1-1 | sed -e "s/a/A/gi" > /tmp/$$0
#残りのフィールドを抜き出す
cat ${IPF} | cut -d' ' -f2-128 > /tmp/$$1
#同列行を連結
paste -d " " /tmp/$$0 /tmp/$$1 > ${OPF}
rm -f /tmp/$$*
OPF="結果を出力するファイル.txt"
#最初のフィールドを抜き出し、aをAに変換
cat ${IPF} | cut -d' ' -f1-1 | sed -e "s/a/A/gi" > /tmp/$$0
#残りのフィールドを抜き出す
cat ${IPF} | cut -d' ' -f2-128 > /tmp/$$1
#同列行を連結
paste -d " " /tmp/$$0 /tmp/$$1 > ${OPF}
rm -f /tmp/$$*
6260
2021/03/16(火) 19:53:28.48ID:KSYjhM+z2021/03/16(火) 19:53:49.41ID:37ClWGtj
'h;s/ .*//;s/a/A/g;x;s/^[^ ]*//;H;g;s/\n//'
2021/03/16(火) 20:44:06.60ID:Uw3qDZze
':b;s/^\(A*\)a/\1A/g;tb'
2021/03/16(火) 23:16:18.12ID:cOTzxoWO
仕様を後出しするなカス
2021/03/16(火) 23:29:02.91ID:iNI2JLkI
$ echo 'aa@aa' | sed -E '/^(a+)/!b;s/^(a+)(.*)\n/\1\n\2/;h;s/^(a+).*$/\1/;s/./A/g;G;s/\na+//'
aa@AA
$ echo 'aabbb' | sed -E '/^(a+)/!b;s/^(a+)(.*)\n/\1\n\2/;h;s/^(a+).*$/\1/;s/./A/g;G;s/\na+//'
AAbbb
aa@AA
$ echo 'aabbb' | sed -E '/^(a+)/!b;s/^(a+)(.*)\n/\1\n\2/;h;s/^(a+).*$/\1/;s/./A/g;G;s/\na+//'
AAbbb
2021/03/16(火) 23:31:10.17ID:iNI2JLkI
>>66
最初の方、aa@AA じゃなくて AA@aa だわ
最初の方、aa@AA じゃなくて AA@aa だわ
2021/03/16(火) 23:40:46.05ID:iNI2JLkI
考えてみたら
'/^(a+)/!b;h;s/^(a+).*$/\1/;s/./A/g;G;s/\na+//'
でええかな…
'/^(a+)/!b;h;s/^(a+).*$/\1/;s/./A/g;G;s/\na+//'
でええかな…
6960
2021/03/16(火) 23:57:21.97ID:KSYjhM+z2021/03/17(水) 00:55:43.47ID:ORBKE+6f
>>70
どこに?
どこに?
2021/03/17(水) 00:59:05.62ID:8tt0N3Ix
perl -pe 's/^(a*\s)/$1=~s|a|A|rg/e'
2021/03/17(水) 02:07:36.90ID:MY4kqLB8
yafiygi
2021/03/18(木) 22:37:09.67ID:TQ/yKLr3
パイプとリダイレクトなんだけど、どっちを使ったほうがいいとかありますか?
1は cat のプロセスが生成されるだけ無駄なのかな
1. cat file1 | wc
2. wc < file1
1は cat のプロセスが生成されるだけ無駄なのかな
1. cat file1 | wc
2. wc < file1
2021/03/18(木) 22:38:55.72ID:TQ/yKLr3
連レスすまそ
手癖で1をやっちゃうんだけど、こういう時にまずいとかあったら教えてほしい感じです
手癖で1をやっちゃうんだけど、こういう時にまずいとかあったら教えてほしい感じです
2021/03/18(木) 22:47:23.96ID:3HmhYQS2
ないだろう
別次元で
cat file | read a
read a < file
aをなんかする
とかならあるけど
cat file | は古典的定番で今でも悪でもないだろう
別次元で
cat file | read a
read a < file
aをなんかする
とかならあるけど
cat file | は古典的定番で今でも悪でもないだろう
2021/03/18(木) 22:54:13.26ID:3HmhYQS2
https://ja.wikipedia.org/wiki/Cat_(UNIX)
なんかウザいw
1995年からそんなのあったんだ
あんま普及してなさそ
wc < file1
も古典だって
<file1 wc
だって。ウザいなw
なんかウザいw
1995年からそんなのあったんだ
あんま普及してなさそ
wc < file1
も古典だって
<file1 wc
だって。ウザいなw
2021/03/18(木) 23:06:25.59ID:TQ/yKLr3
気にしすぎか、ありがとう!
> cat > newfile
> 新規ファイルnewfileを作成もしくは上書きして、入力したい内容を打ち込み、CTRL+Dコマンドで終了する。入力された内容は新規ファイルに書き込まれる。
これ知らなかったな、同じことをやりたい時は cat << EOF > newfile してたぜ
> cat > newfile
> 新規ファイルnewfileを作成もしくは上書きして、入力したい内容を打ち込み、CTRL+Dコマンドで終了する。入力された内容は新規ファイルに書き込まれる。
これ知らなかったな、同じことをやりたい時は cat << EOF > newfile してたぜ
2021/03/19(金) 00:06:34.36ID:vJ8/R89b
Useless use of cat (UUOC)
昔から有名だな
catなんか使うもんじゃない
昔から有名だな
catなんか使うもんじゃない
2021/03/19(金) 00:09:26.01ID:vJ8/R89b
>>74
> 1. cat file1 | wc
> 2. wc < file1
明らかに2の方が良い
> cat file | read a
> read a < file
特にこの2つだと後者のほうが圧倒的に速い
なぜならcatを使うとシーク不可能になるから
1バイトずつの読み込みになる
< file だとシーク可能だから一定のサイズで読み込むので速い
> 1. cat file1 | wc
> 2. wc < file1
明らかに2の方が良い
> cat file | read a
> read a < file
特にこの2つだと後者のほうが圧倒的に速い
なぜならcatを使うとシーク不可能になるから
1バイトずつの読み込みになる
< file だとシーク可能だから一定のサイズで読み込むので速い
2021/03/19(金) 00:15:10.62ID:gmXrz9Hk
ウザいのが出たよw
2021/03/19(金) 00:17:10.15ID:gmXrz9Hk
>なぜならcatを使うとシーク不可能になるから〜
www
何言ってるんだか
www
何言ってるんだか
2021/03/19(金) 00:17:28.82ID:vJ8/R89b
ウザいのはあなたの感想ですよね
事実の話をしましょう
事実の話をしましょう
2021/03/19(金) 00:18:15.17ID:vJ8/R89b
>>82
恥ずかしくないの?
sh の組み込みコマンド read は遅い
https://www.allbsd.org/~hrs/blog/2020-03-28-sh-built-in-read.html
恥ずかしくないの?
sh の組み込みコマンド read は遅い
https://www.allbsd.org/~hrs/blog/2020-03-28-sh-built-in-read.html
2021/03/19(金) 00:19:26.55ID:vJ8/R89b
> 改善するには
ここまで読んで、「最初の shcat の例とコードが違うのでは」と気づいたひとがいるかも知れない。
> 文頭では、次のような例として紹介した。
>
> shcat() { while read L; do echo "$L"; done; }
>
> shcat < foo
> 当たり前だが、こちらは cat(1) を使っていない。先ほどのベンチマークは cat(1) を使っていたので、
> 入力をリダイレクトにしてみよう。
> 実は、シェルの実装によってはシーク可能な記述子を read(2) が読む場合に限り、
> システムコールのバッファを増やすという最適化が入っている。前述したとおり、r
> ead 組み込みコマンドは改行文字を飛び越さないために、1 文字ずつ読む必要がある。
> しかし読む対象がファイルであれば、ランダムアクセスできるので読み出す位置は自由に設定できる。
> そのため、read(2) で大きめに読み込んでから改行文字を探し、その直後に読み出し位置を
> 再設定すれば 1 文字ずつ read(2) を呼び出す必要はない。
ここまで読んで、「最初の shcat の例とコードが違うのでは」と気づいたひとがいるかも知れない。
> 文頭では、次のような例として紹介した。
>
> shcat() { while read L; do echo "$L"; done; }
>
> shcat < foo
> 当たり前だが、こちらは cat(1) を使っていない。先ほどのベンチマークは cat(1) を使っていたので、
> 入力をリダイレクトにしてみよう。
> 実は、シェルの実装によってはシーク可能な記述子を read(2) が読む場合に限り、
> システムコールのバッファを増やすという最適化が入っている。前述したとおり、r
> ead 組み込みコマンドは改行文字を飛び越さないために、1 文字ずつ読む必要がある。
> しかし読む対象がファイルであれば、ランダムアクセスできるので読み出す位置は自由に設定できる。
> そのため、read(2) で大きめに読み込んでから改行文字を探し、その直後に読み出し位置を
> 再設定すれば 1 文字ずつ read(2) を呼び出す必要はない。
2021/03/19(金) 00:20:25.38ID:gmXrz9Hk
www
わざわざ煽って出してきたのが、
自分が何も理解してませんという証明にしかなってないという
わざわざ煽って出してきたのが、
自分が何も理解してませんという証明にしかなってないという
2021/03/19(金) 00:21:37.14ID:gmXrz9Hk
連投して抽出までしてるのにww
何も理解してませんという証明にしかなってないよ
何も理解してませんという証明にしかなってないよ
2021/03/19(金) 00:22:02.15ID:vJ8/R89b
>>86
なにか言い返す言葉があるなら言い返してみてよ
なにか言い返す言葉があるなら言い返してみてよ
2021/03/19(金) 00:23:55.24ID:gmXrz9Hk
偉そうな馬鹿に教えてやるとでも思ってるのか
そんな煽りでとかも思ってそうだな、とことん甘ちゃんだな
それと、いつものが確定してんぞw
そんな煽りでとかも思ってそうだな、とことん甘ちゃんだな
それと、いつものが確定してんぞw
2021/03/19(金) 00:26:19.51ID:vJ8/R89b
自分からいつものやつだって自白してらw
2021/03/19(金) 00:28:27.48ID:gmXrz9Hk
アホな返しっぷりがまたこれがまた、いつものパターンという...w
2021/03/19(金) 02:10:05.59ID:qP05xHwq
いつもの2人やな
2021/03/19(金) 02:17:31.73ID:7j/6ICPv
トムとジェリー仲良く喧嘩しな〜♪
2021/03/19(金) 04:05:22.98ID:RMQx/osX
catよりパロディのtacの方がオプションモリモリでcat以上に乱用されてるよな…
2021/03/19(金) 04:19:36.74ID:L0TmvpAG
2021/03/19(金) 12:05:21.82ID:8EGHMbin
$ cat << EOL > file1
> foo
> bar
> EOF
これでヒアドキュメントを使った複数行テキストの書き込みはできるんだけど、
cat を使わないようにするのって可能なのかな
> foo
> bar
> EOF
これでヒアドキュメントを使った複数行テキストの書き込みはできるんだけど、
cat を使わないようにするのって可能なのかな
2021/03/19(金) 12:06:22.99ID:8EGHMbin
>>96 s/EOF/EOL/
2021/03/19(金) 12:13:54.81ID:UA/QoJ1s
エンドオブライフ
2021/03/19(金) 13:27:42.94ID:8EGHMbin
tee を使えば行けることに気付いたけど、cat が減っても tee が出てきたら意味ないよね
そもそも数行程度で cat を無理に外す必要はないことに気付いた
忘れてくれ
そもそも数行程度で cat を無理に外す必要はないことに気付いた
忘れてくれ
100デフォルトの名無しさん
2021/03/19(金) 15:51:37.59ID:R0IdNopV echo ... >file
でええがな。w
シェルビルトインコマンドやし、ちょっと軽い。
でええがな。w
シェルビルトインコマンドやし、ちょっと軽い。
101デフォルトの名無しさん
2021/03/19(金) 16:55:09.45ID:MDPOlxpG >>96
ちょっと上に出てきたshcatからわかるように
catはほぼ同等のものをシェルスクリプトで実装できる
(ファイルにNULL文字や不正な文字が入ってる場合に少し異なる)
ただし行数が多くなるとループ処理の回数も増えるので
遅いシェルスクリプトよりもcatの方が良い
ちなみにこんな感じね
while IFS= read -r line; do
printf '%s\n' "$line"
done << EOW > file1
foo
bar
EOW
ちょっと上に出てきたshcatからわかるように
catはほぼ同等のものをシェルスクリプトで実装できる
(ファイルにNULL文字や不正な文字が入ってる場合に少し異なる)
ただし行数が多くなるとループ処理の回数も増えるので
遅いシェルスクリプトよりもcatの方が良い
ちなみにこんな感じね
while IFS= read -r line; do
printf '%s\n' "$line"
done << EOW > file1
foo
bar
EOW
102デフォルトの名無しさん
2021/03/19(金) 16:56:26.33ID:DiNJqFEB それでいいなら最初からそうしてるんじゃないか。知らんけど。
104デフォルトの名無しさん
2021/03/19(金) 18:57:42.69ID:RMQx/osX >>84
比べてないがその用途にmapfileがビルトインなんじゃないの、標準かは知らんけど
比べてないがその用途にmapfileがビルトインなんじゃないの、標準かは知らんけど
105デフォルトの名無しさん
2021/03/19(金) 19:00:37.39ID:RMQx/osX ああ配列使うんだから標準なわけないか
ストリームじゃないからクソデカだと困るか
でも手放せない
ストリームじゃないからクソデカだと困るか
でも手放せない
106デフォルトの名無しさん
2021/03/23(火) 17:53:11.07ID:laboXhIZ 0、標準入力
1、標準出力
2、標準エラー出力
ですよね?
cat <&0 ってやってなんか文字打ったら
標準入力から入力したものを標準出力に出力するから
入力した行と同じ行が出力されるのはわかるんですが
なんで cat <&2 ってやっても同じように
入力した行と同じ行が出力されるんです?
標準エラー出力から入力するってどういう意味なんです?
1、標準出力
2、標準エラー出力
ですよね?
cat <&0 ってやってなんか文字打ったら
標準入力から入力したものを標準出力に出力するから
入力した行と同じ行が出力されるのはわかるんですが
なんで cat <&2 ってやっても同じように
入力した行と同じ行が出力されるんです?
標準エラー出力から入力するってどういう意味なんです?
107デフォルトの名無しさん
2021/03/23(火) 18:14:05.04ID:2hAdV+Tt $ tty
/dev/pts/0
$ ps
PID TTY TIME CMD
94 pts/0 00:00:00 bash
232 pts/0 00:00:00 ps
$ sudo ls -l /proc/94/fd
total 0
lrwx------ 1 user user 0 Mar 23 17:56 0 -> /dev/pts/0
lrwx------ 1 user user 0 Mar 23 18:08 1 -> /dev/pts/0
lrwx------ 1 user user 0 Mar 23 18:08 2 -> /dev/pts/0
lrwx------ 1 user user 0 Mar 23 18:08 255 -> /dev/pts/0
/dev/pts/0
$ ps
PID TTY TIME CMD
94 pts/0 00:00:00 bash
232 pts/0 00:00:00 ps
$ sudo ls -l /proc/94/fd
total 0
lrwx------ 1 user user 0 Mar 23 17:56 0 -> /dev/pts/0
lrwx------ 1 user user 0 Mar 23 18:08 1 -> /dev/pts/0
lrwx------ 1 user user 0 Mar 23 18:08 2 -> /dev/pts/0
lrwx------ 1 user user 0 Mar 23 18:08 255 -> /dev/pts/0
108デフォルトの名無しさん
2021/03/23(火) 20:33:12.59ID:laboXhIZ あなるほー
紐付いてんのか
POSIXで決まってたりするんかな?
紐付いてんのか
POSIXで決まってたりするんかな?
109デフォルトの名無しさん
2021/03/23(火) 22:24:47.39ID:abnhlux1 POSIXで当然定義はされてる
紐付いてんのか(?)のことじゃないけどな
紐付いてんのか(?)のことじゃないけどな
110デフォルトの名無しさん
2021/03/23(火) 22:43:31.00ID:laboXhIZ 標準エラー出力から入力した場合の仕様はどこに書いてるの?
111デフォルトの名無しさん
2021/03/23(火) 23:02:58.99ID:abnhlux1 そんな仕様じゃないよ
<&2 という表記だから、標準エラー出力から入力する と思うのはしょうがないけど、多分思い違いしてるぞ
0<&2 は、標準エラー出力のディスクリプタの複製を標準入力のディスクリプタにするだからな
(その時点での)標準エラー出力のディスクリプタがrwで開かれてる tty(/dev/pts/0) で、それの複製なんだから、以下省略
<&2 という表記だから、標準エラー出力から入力する と思うのはしょうがないけど、多分思い違いしてるぞ
0<&2 は、標準エラー出力のディスクリプタの複製を標準入力のディスクリプタにするだからな
(その時点での)標準エラー出力のディスクリプタがrwで開かれてる tty(/dev/pts/0) で、それの複製なんだから、以下省略
112デフォルトの名無しさん
2021/03/23(火) 23:06:00.65ID:laboXhIZ > (その時点での)標準エラー出力のディスクリプタがrwで開かれてる tty(/dev/pts/0) で、
これがPOSIXの仕様なの?
これがPOSIXの仕様なの?
113デフォルトの名無しさん
2021/03/23(火) 23:17:16.76ID:abnhlux1 0<&2 は、標準エラー出力のディスクリプタの複製を標準入力のディスクリプタにする
これ
そこは、疑問と思ってるようだが仕様での動作として何も疑問はないってこと
これ
そこは、疑問と思ってるようだが仕様での動作として何も疑問はないってこと
114デフォルトの名無しさん
2021/03/29(月) 04:33:30.50ID:T/NVAJfs シェルスクリプトの互換性やら#!の書き方の作法互換性やらbashismやら言われてるけど、みんなmailcap/mime-type使わんの?
115デフォルトの名無しさん
2021/03/29(月) 04:41:36.50ID:T/NVAJfs 一応mailcapそれ自体はPOSIX…のはず
ちゃんと各shのmime-typeがそのPOSIXで定義されてるかは不明だけど、IANAとかでは規定あるわけだし
みんな適切に拡張子つければ解決するんじゃないかなって
unix系以外のOSでも対応してるのでPOSIXのみ準拠よりポータブルのはず
ちゃんと各shのmime-typeがそのPOSIXで定義されてるかは不明だけど、IANAとかでは規定あるわけだし
みんな適切に拡張子つければ解決するんじゃないかなって
unix系以外のOSでも対応してるのでPOSIXのみ準拠よりポータブルのはず
116デフォルトの名無しさん
2021/03/29(月) 07:07:57.33ID:wK+S1L2g117デフォルトの名無しさん
2021/03/29(月) 07:31:02.84ID:HXftsQaM >>116
だからこそ
application/x-dash; /bin/dash %s
mime-extensions
application/x-bash; /usr/bin/bash %s
mime-extensions
application/x-dash sh dash
application/x-bash bash
なり指定しておけば面倒はないと思ったんだよ(ごめん書式はあってるかしらん)
だからこそ
application/x-dash; /bin/dash %s
mime-extensions
application/x-bash; /usr/bin/bash %s
mime-extensions
application/x-dash sh dash
application/x-bash bash
なり指定しておけば面倒はないと思ったんだよ(ごめん書式はあってるかしらん)
118デフォルトの名無しさん
2021/03/29(月) 07:32:42.67ID:wK+S1L2g >>117
だから /bin/sh になにを設定するのか教えて
だから /bin/sh になにを設定するのか教えて
119デフォルトの名無しさん
2021/03/29(月) 07:34:02.79ID:HXftsQaM ああ、/binとかに標準で入ってるのは大体.sh付いてないお行儀悪いのばっかだから不味いか…
今時配布するスクリプトには大体付けると思うけど、こればっかは仕方ない
今時配布するスクリプトには大体付けると思うけど、こればっかは仕方ない
120デフォルトの名無しさん
2021/03/29(月) 07:34:21.19ID:wK+S1L2g もう一つ。
gunzip という"シェルスクリプト" に
どういう設定をすれば良いのか教えて
$ file /bin/gunzip
/bin/gunzip: POSIX shell script, ASCII text executable
gunzip という"シェルスクリプト" に
どういう設定をすれば良いのか教えて
$ file /bin/gunzip
/bin/gunzip: POSIX shell script, ASCII text executable
121デフォルトの名無しさん
2021/03/29(月) 07:34:58.94ID:wK+S1L2g122デフォルトの名無しさん
2021/03/29(月) 07:35:28.60ID:HXftsQaM >>118
できるだけ互換なのを関連付けるのがベストプラクティスじゃないかな
できるだけ互換なのを関連付けるのがベストプラクティスじゃないかな
123デフォルトの名無しさん
2021/03/29(月) 07:36:04.54ID:wK+S1L2g124デフォルトの名無しさん
2021/03/29(月) 07:36:41.97ID:HXftsQaM >>121
どう考えても良くない習慣だと思うよ…
どう考えても良くない習慣だと思うよ…
125デフォルトの名無しさん
2021/03/29(月) 07:39:18.53ID:HXftsQaM126デフォルトの名無しさん
2021/03/29(月) 07:42:17.96ID:wK+S1L2g >>124
良くない習慣だと言ってる人はだれもいません。
実際にディストリに含まれる実行プログラムで
実装言語の拡張子をつけてるプログラムは一つもありません
Ruby、Perl、Python、拡張子がついてますか?
そもそもさぁ、作者が 拡張子 .sh つけたとしても
じゃあ、これを何で動かせば良いのさ?
/bin/sh が bash だって言ってんだろ
良くない習慣だと言ってる人はだれもいません。
実際にディストリに含まれる実行プログラムで
実装言語の拡張子をつけてるプログラムは一つもありません
Ruby、Perl、Python、拡張子がついてますか?
そもそもさぁ、作者が 拡張子 .sh つけたとしても
じゃあ、これを何で動かせば良いのさ?
/bin/sh が bash だって言ってんだろ
127デフォルトの名無しさん
2021/03/29(月) 07:50:37.48ID:T/NVAJfs >>126
ちゃんとユーザーがどのインタプリタ(*sh、.py etc)で実行するべきか分かるように拡張子を付けるようにしましょう、って提言してる
そりゃインタプリタはインタプリタ名が自身を現してるから付ける必要は無いけど、解釈されるスクリプトには付けない理由は無いでしょう
パス決め打ちに依存するシバンより確実にインタプリタを指定できるわけだし
ちゃんとユーザーがどのインタプリタ(*sh、.py etc)で実行するべきか分かるように拡張子を付けるようにしましょう、って提言してる
そりゃインタプリタはインタプリタ名が自身を現してるから付ける必要は無いけど、解釈されるスクリプトには付けない理由は無いでしょう
パス決め打ちに依存するシバンより確実にインタプリタを指定できるわけだし
128デフォルトの名無しさん
2021/03/29(月) 07:56:33.90ID:wK+S1L2g >>127
> ちゃんとユーザーがどのインタプリタ(*sh、.py etc)で実行するべきか分かるように拡張子を付けるようにしましょう、って提言してる
少しは想像力ないのか?
作者が、.sh という拡張子を使って配布して
それをユーザーが、.bash に変更するようにしましょう
とお前が言っていて
そうするとファイル名変わるから、その .sh が
呼び出せなくなるだろ
ぐらいのこと思いつかんのか?
> ちゃんとユーザーがどのインタプリタ(*sh、.py etc)で実行するべきか分かるように拡張子を付けるようにしましょう、って提言してる
少しは想像力ないのか?
作者が、.sh という拡張子を使って配布して
それをユーザーが、.bash に変更するようにしましょう
とお前が言っていて
そうするとファイル名変わるから、その .sh が
呼び出せなくなるだろ
ぐらいのこと思いつかんのか?
129デフォルトの名無しさん
2021/03/29(月) 07:57:55.93ID:wK+S1L2g 訂正
そうするとファイル名変わるから、その .sh を
内部で呼び出すスクリプトが動かなくなるだろ
そうするとファイル名変わるから、その .sh を
内部で呼び出すスクリプトが動かなくなるだろ
130デフォルトの名無しさん
2021/03/29(月) 07:58:26.46ID:wK+S1L2g だいたい「拡張子をつけないのが常識」だから
シバンというものがあるんだがな
シバンというものがあるんだがな
131デフォルトの名無しさん
2021/03/29(月) 07:59:44.04ID:qWZz7CCC 焦りすぎだ落ち着けw
132デフォルトの名無しさん
2021/03/29(月) 08:04:34.67ID:wK+S1L2g 落ち着いてるw
そもそも拡張子ではどのインタプリタで動かすのかわからないという前提があるのに
今更何を言ってんだこいつって話
そもそも拡張子ではどのインタプリタで動かすのかわからないという前提があるのに
今更何を言ってんだこいつって話
133デフォルトの名無しさん
2021/03/29(月) 08:04:56.34ID:T/NVAJfs >>128
拡張子は配布者が指定するんだよ、誤解を招いたみたいですまん
ここまでシバかれるとは思わんかった…
実行ファイルに拡張子付けるのが気に入らんなら、ファイル先頭付近のコメントにmime-typeを書いておけば検知されるわけだし、これなら既存の慣習と衝突しない落とし所としてどうだろ?
拡張子は配布者が指定するんだよ、誤解を招いたみたいですまん
ここまでシバかれるとは思わんかった…
実行ファイルに拡張子付けるのが気に入らんなら、ファイル先頭付近のコメントにmime-typeを書いておけば検知されるわけだし、これなら既存の慣習と衝突しない落とし所としてどうだろ?
134デフォルトの名無しさん
2021/03/29(月) 08:12:16.40ID:T/NVAJfs >>132
zshくらい所謂shと違うと、.zshと付いてること多いけど、bashくらいの分かりにくい拡張だとshと付けたくなるのは分かるなあ
zshくらい所謂shと違うと、.zshと付いてること多いけど、bashくらいの分かりにくい拡張だとshと付けたくなるのは分かるなあ
135デフォルトの名無しさん
2021/03/29(月) 08:12:32.79ID:wK+S1L2g136デフォルトの名無しさん
2021/03/29(月) 08:17:34.76ID:T/NVAJfs >>135
規格で決まってるコマンドはそりゃ付けちゃだめだよ
それ以外は気にいるか気に入らないかの問題でしょう
気にならないなら拡張子を付ける、気に入らないならmailcapが見つけられるようコメントにmimeを書く
規格で決まってるコマンドはそりゃ付けちゃだめだよ
それ以外は気にいるか気に入らないかの問題でしょう
気にならないなら拡張子を付ける、気に入らないならmailcapが見つけられるようコメントにmimeを書く
137デフォルトの名無しさん
2021/03/29(月) 08:19:14.60ID:wK+S1L2g > それ以外は気にいるか気に入らないかの問題でしょう
違う。互換性の問題
実装言語を変えても、互換性は保たれなければならない
違う。互換性の問題
実装言語を変えても、互換性は保たれなければならない
138デフォルトの名無しさん
2021/03/29(月) 08:22:32.70ID:T/NVAJfs139デフォルトの名無しさん
2021/03/29(月) 08:26:40.81ID:wK+S1L2g OSの仕様として二行目にシバン2を作れって話?w
140デフォルトの名無しさん
2021/03/29(月) 08:35:53.68ID:wK+S1L2g 結局はシバンを/usr/bin/env bashとかにすれば同じこと
141デフォルトの名無しさん
2021/03/29(月) 08:40:37.26ID:T/NVAJfs >>139
まさにその為にPOSIXへ導入された機構なのではないでしょうか?
mailと付いているのはメール方面で発展したからかな?と気になりますが
先頭付近に書いておけばrun-mailcapが検知してくれますよね、vimのモードラインみたいに先頭5行のような明確な判定法ってないんですかね?
ブラウザなんかはヒューリスティックで上手く決めてくれますけど、
まさにその為にPOSIXへ導入された機構なのではないでしょうか?
mailと付いているのはメール方面で発展したからかな?と気になりますが
先頭付近に書いておけばrun-mailcapが検知してくれますよね、vimのモードラインみたいに先頭5行のような明確な判定法ってないんですかね?
ブラウザなんかはヒューリスティックで上手く決めてくれますけど、
142デフォルトの名無しさん
2021/03/29(月) 08:50:40.11ID:T/NVAJfs >>140
シバンが先頭占めてるので、GUIで適当にポチポチする人や、中身知らんけど取り敢えず./scriptで実行しちゃう人にはスルーされちゃうんですよね…
イマイチ強制力がないというか
win、linun、unix、macどこでも同じコマンド/クリックで同じように実行できるのは便利なんですが
シバンが先頭占めてるので、GUIで適当にポチポチする人や、中身知らんけど取り敢えず./scriptで実行しちゃう人にはスルーされちゃうんですよね…
イマイチ強制力がないというか
win、linun、unix、macどこでも同じコマンド/クリックで同じように実行できるのは便利なんですが
143デフォルトの名無しさん
2021/03/29(月) 08:58:49.98ID:wK+S1L2g マジ意味不明
どんな手段でもいいからファイルの上の方に書いてある
なにかに従って実行ファイルを動かすツールをもってこい
話はそれからだろ
どんな手段でもいいからファイルの上の方に書いてある
なにかに従って実行ファイルを動かすツールをもってこい
話はそれからだろ
144デフォルトの名無しさん
2021/03/29(月) 09:14:27.76ID:T/NVAJfs >>143
いや、だからそれがrun-mailcapでは…
ところで、debianのman読むと、最終的にfileコマンドにフォールバックしてmime-typeを決定するとか非常に不吉な事書いてますね!?
うちのfileはシバンから推測(bashとshの区別など)してたと思うので、一旦mailcapを参照する事によるパス非依存性以外に利点がない気がしてきました…
決定アルゴリズムが統一されてないのが課題ですかね
winはもちろん違うでしょうし、unix系でもメーラ/ブラウザは固有の方法で決めてますし
第4のシバンを待つしかないのか!
いや、だからそれがrun-mailcapでは…
ところで、debianのman読むと、最終的にfileコマンドにフォールバックしてmime-typeを決定するとか非常に不吉な事書いてますね!?
うちのfileはシバンから推測(bashとshの区別など)してたと思うので、一旦mailcapを参照する事によるパス非依存性以外に利点がない気がしてきました…
決定アルゴリズムが統一されてないのが課題ですかね
winはもちろん違うでしょうし、unix系でもメーラ/ブラウザは固有の方法で決めてますし
第4のシバンを待つしかないのか!
145デフォルトの名無しさん
2021/03/29(月) 09:16:56.36ID:wK+S1L2g146デフォルトの名無しさん
2021/03/29(月) 09:18:26.85ID:SSJ6OpUN うだうだと意味不明だな
シバンは(低レベル)OS API(exec系)でサポートされてるんじゃなかったかな
mime-typeを仮にサポートしてるOSがあってもせいぜい高級APIでじゃないの
何を言いたいのかさっぱりわからん
シバンは(低レベル)OS API(exec系)でサポートされてるんじゃなかったかな
mime-typeを仮にサポートしてるOSがあってもせいぜい高級APIでじゃないの
何を言いたいのかさっぱりわからん
147デフォルトの名無しさん
2021/03/29(月) 09:30:51.89ID:T/NVAJfs >>146
スレを眺めるに高級環境っぽいので、posixの話はアリかと思いまして
ただ、shを名乗っててもbusyboxとか組み込みだと無さそうな気がしますね(調べてない)
普段コマンドラインに住んでますがすごく便利ですよmailcap
ただ、色々突っ込んで貰ってenvも良さそうな気がしてきました
スレを眺めるに高級環境っぽいので、posixの話はアリかと思いまして
ただ、shを名乗っててもbusyboxとか組み込みだと無さそうな気がしますね(調べてない)
普段コマンドラインに住んでますがすごく便利ですよmailcap
ただ、色々突っ込んで貰ってenvも良さそうな気がしてきました
148デフォルトの名無しさん
2021/03/29(月) 09:33:26.88ID:wK+S1L2g149デフォルトの名無しさん
2021/03/29(月) 09:36:04.57ID:SSJ6OpUN OSレベルでもなくツールで便利だったからかよ?
自分が便利でしかないことをうだうだうだうだとかよw
自分が便利でしかないことをうだうだうだうだとかよw
150デフォルトの名無しさん
2021/03/29(月) 09:36:15.38ID:T/NVAJfs151デフォルトの名無しさん
2021/03/29(月) 09:38:32.42ID:wK+S1L2g152デフォルトの名無しさん
2021/03/29(月) 09:43:42.09ID:SSJ6OpUN mailcapではないがmime-typeをサポートしてるOSがあるんだが。ある意味OSレベルでサポートしてる
作法が多分違うと思うが、それはそれでmime-typeにある意味固執して使うのかなあ?
めんどくささの方が上回りそうだけどw
作法が多分違うと思うが、それはそれでmime-typeにある意味固執して使うのかなあ?
めんどくささの方が上回りそうだけどw
153デフォルトの名無しさん
2021/03/29(月) 09:44:13.43ID:T/NVAJfs >>151
普及運動ですかね…
普及運動ですかね…
154デフォルトの名無しさん
2021/03/29(月) 09:49:41.80ID:SSJ6OpUN 既存の色々を知らなさすぎるのに普及運動とかは無理だろうとしか思えない
OSレベルでサポートしてるOSのでもそんなことやってるヤツ見たことないしな
OSレベルでサポートしてるOSのでもそんなことやってるヤツ見たことないしな
155デフォルトの名無しさん
2021/03/29(月) 09:52:18.11ID:T/NVAJfs156デフォルトの名無しさん
2021/03/29(月) 09:59:52.36ID:Hi4CyJOB157デフォルトの名無しさん
2021/03/29(月) 10:01:28.74ID:wK+S1L2g >>153
普及運動したってmailcapに機能が搭載されてなければ出来ないだろ
だから早くいえmailcapを使うとして
シェルスクリプト作者は何をスレば良いんだ?
実は何もしなくて良いんだろ?w
そもそもmailcap使っても出来ないことだからwww
普及運動したってmailcapに機能が搭載されてなければ出来ないだろ
だから早くいえmailcapを使うとして
シェルスクリプト作者は何をスレば良いんだ?
実は何もしなくて良いんだろ?w
そもそもmailcap使っても出来ないことだからwww
158デフォルトの名無しさん
2021/03/29(月) 10:02:18.72ID:/i/qkskJ webだとみんなmimeでインタプリタ決めるしな
その方面で育つとカルチャーショック
その方面で育つとカルチャーショック
159デフォルトの名無しさん
2021/03/29(月) 10:03:55.77ID:SSJ6OpUN >>158
そういう流れかあ。それっぽいな
そういう流れかあ。それっぽいな
160デフォルトの名無しさん
2021/03/29(月) 10:05:03.53ID:wK+S1L2g × webだとみんなmimeでインタプリタ決めるしな
○ ウェブサーバーだとみんなmimeでインタプリタ決めるしな
ウェブサーバー側の設定でやるから
スクリプトの作者は何もする必要がない
ウェブサーバー側に相当する何かを用意すればいい
○ ウェブサーバーだとみんなmimeでインタプリタ決めるしな
ウェブサーバー側の設定でやるから
スクリプトの作者は何もする必要がない
ウェブサーバー側に相当する何かを用意すればいい
161デフォルトの名無しさん
2021/03/29(月) 10:09:45.64ID:SSJ6OpUN 読めてないんじゃないの。そんな具体的な話でないぞ
162デフォルトの名無しさん
2021/03/29(月) 10:12:06.19ID:wK+S1L2g そういう話だよ
163デフォルトの名無しさん
2021/03/29(月) 10:13:08.06ID:SSJ6OpUN まあ、ご自由に。話が繋がるとは思えないけど
さて
さて
164デフォルトの名無しさん
2021/03/29(月) 10:21:39.61ID:mn0uwvfX 自分で設定するのは面倒、色んな環境の初期設定が揃ってよろしくなってからかな
165デフォルトの名無しさん
2021/03/29(月) 15:38:51.51ID:Hi4CyJOB 潔癖症とか完璧主義者とかがUNIX系のもろもろをキモく感じるのはわかる。
とくに最初のころ。
馴れてくると、だいたい気にならんくなってくる。
それがいいことかどうかはわからんけど。w
とくに最初のころ。
馴れてくると、だいたい気にならんくなってくる。
それがいいことかどうかはわからんけど。w
166デフォルトの名無しさん
2021/03/29(月) 15:48:26.38ID:jeDqT5qX >>126
うちのはデフォルトで/bin/shがzshになってるよ
うちのはデフォルトで/bin/shがzshになってるよ
167デフォルトの名無しさん
2021/03/29(月) 17:08:18.30ID:wK+S1L2g168デフォルトの名無しさん
2021/03/29(月) 17:44:52.06ID:jeDqT5qX169デフォルトの名無しさん
2021/03/29(月) 17:47:55.60ID:T/NVAJfs めっちゃ右翼だなそりゃ…
仕方なく読む專だからわからんのだけど、zshもshっぽく振る舞うモードとかあるんじゃないのさすがに限度ってものがあると思うが
仕方なく読む專だからわからんのだけど、zshもshっぽく振る舞うモードとかあるんじゃないのさすがに限度ってものがあると思うが
170デフォルトの名無しさん
2021/03/29(月) 17:51:37.76ID:jeDqT5qX171デフォルトの名無しさん
2021/03/29(月) 17:53:39.75ID:wK+S1L2g >>168
> macOS Catalina
どーせそういうと思ったw
なんつーか、みんな基礎的な知識がないよな
あ、macOS Catalinaの/bin/shは(POSIXモードの)bash 3.2.57 だ
これからもずっと変わらんだろうよ
> macOS Catalina
どーせそういうと思ったw
なんつーか、みんな基礎的な知識がないよな
あ、macOS Catalinaの/bin/shは(POSIXモードの)bash 3.2.57 だ
これからもずっと変わらんだろうよ
172デフォルトの名無しさん
2021/03/29(月) 17:56:44.94ID:jeDqT5qX173デフォルトの名無しさん
2021/03/29(月) 17:58:03.88ID:jeDqT5qX なおBigSurは最初からzsh
もうbashには戻らんだろうね
もうbashには戻らんだろうね
174デフォルトの名無しさん
2021/03/29(月) 18:01:27.34ID:wK+S1L2g175デフォルトの名無しさん
2021/03/29(月) 18:04:28.54ID:1/gzKsrI ログインシェル と /bin/sh は違うぞ
/bin/sh がなんなの確認してみ
/bin/sh がなんなの確認してみ
176デフォルトの名無しさん
2021/03/29(月) 18:06:21.42ID:jeDqT5qX177デフォルトの名無しさん
2021/03/29(月) 18:07:44.45ID:jeDqT5qX >>175
zshにリンクされてるね
zshにリンクされてるね
178デフォルトの名無しさん
2021/03/29(月) 18:07:48.03ID:wK+S1L2g >>176
俺が聞いたのは、プロンプトになんて表示されるかだ
なぜ質問に答えられないのか?
それだけなんだが?
レスするよりタイプ文字は少ないだろ
ああ面倒だw
答えは、sh-3.2
bash 3.2の3.2だ
なにか言い返す言葉はあるか?
俺が聞いたのは、プロンプトになんて表示されるかだ
なぜ質問に答えられないのか?
それだけなんだが?
レスするよりタイプ文字は少ないだろ
ああ面倒だw
答えは、sh-3.2
bash 3.2の3.2だ
なにか言い返す言葉はあるか?
179デフォルトの名無しさん
2021/03/29(月) 18:08:14.41ID:1/gzKsrI >>176
確かめてないだろw
冷静にもう一度ちゃんと確かめてみ
>macOS Catalina
>以前は手を入れないとダメだったらしいけど
ってのからも明らかにログインシェル=/bin/shだと思ってるだろうし
確かめてないだろw
冷静にもう一度ちゃんと確かめてみ
>macOS Catalina
>以前は手を入れないとダメだったらしいけど
ってのからも明らかにログインシェル=/bin/shだと思ってるだろうし
180デフォルトの名無しさん
2021/03/29(月) 18:10:30.37ID:wK+S1L2g >>177
されてない
それどころかbashにもリンクされてなくて
ファイルサイズはbashとzsh(ほぼ同じぐらい)の1/10程度しかない
これは/bin/shがbashをベースにPOSIXに準拠するだけの機能に
減らしてビルドした縮小版だからだ
されてない
それどころかbashにもリンクされてなくて
ファイルサイズはbashとzsh(ほぼ同じぐらい)の1/10程度しかない
これは/bin/shがbashをベースにPOSIXに準拠するだけの機能に
減らしてビルドした縮小版だからだ
181デフォルトの名無しさん
2021/03/29(月) 18:13:42.46ID:1/gzKsrI >>177
嘘なのかw、マジでそうならなんかおま環くさい
/bin/shがコロコロ変わったら困るから(コロコロ変わる必要もないしな)、なんらか(chsh)でそうなるわけもなく、なんでそうなんか...嘘くさいww
BigSurはまだ更新してないからってことは、Catalinaか...尚更嘘くさい
そんな変なの捨ててクリーンインストールしなさいなww
嘘なのかw、マジでそうならなんかおま環くさい
/bin/shがコロコロ変わったら困るから(コロコロ変わる必要もないしな)、なんらか(chsh)でそうなるわけもなく、なんでそうなんか...嘘くさいww
BigSurはまだ更新してないからってことは、Catalinaか...尚更嘘くさい
そんな変なの捨ててクリーンインストールしなさいなww
182デフォルトの名無しさん
2021/03/29(月) 18:14:08.54ID:wK+S1L2g しかしmacOSの/bin/shが、bashやzshの1/10にまでサイズが減ってるとなると
本来のbashに比べて/bin/shは相当機能が削減されたbashだと思うけど何が減ったんだろう?
/bin/shはbashのインタラクティブシェルとしての機能を削っただけかな?
本来のbashに比べて/bin/shは相当機能が削減されたbashだと思うけど何が減ったんだろう?
/bin/shはbashのインタラクティブシェルとしての機能を削っただけかな?
183デフォルトの名無しさん
2021/03/29(月) 18:16:02.09ID:qWZz7CCC チャーリー浜「...」
184デフォルトの名無しさん
2021/03/29(月) 18:16:35.62ID:wK+S1L2g そういやqiitaかなんかでmacOSの/bin/shを最新のbashに
アップデートしましょうとか書いてあった記事があったな
Apple版bashじゃなくてbash本家からビルドしてsudoでcpしてw
システム壊す気かって思ったwww
アップデートしましょうとか書いてあった記事があったな
Apple版bashじゃなくてbash本家からビルドしてsudoでcpしてw
システム壊す気かって思ったwww
185デフォルトの名無しさん
2021/03/29(月) 18:25:27.61ID:1/gzKsrI186デフォルトの名無しさん
2021/03/29(月) 18:30:46.99ID:wK+S1L2g ふ、黙った所を見ると終わったかね?素人が俺様に敵うわけねーだろ
187デフォルトの名無しさん
2021/03/29(月) 18:33:56.47ID:1/gzKsrI お前はそれを冗談で言ってなさそうなとこがな
188デフォルトの名無しさん
2021/03/29(月) 18:34:14.26ID:5I9+wJCt 動いてるなら必要十分だよな
bashはもうバージョン5だし、補完やらのAPIを外部に晒したのが成功して、対話モードが随分良くなった
2つ入れるのはアリだと思う
名前も念の為分けといた方がいいかもしれない(俺はサボったけど)
ただ、呪文のようなパラメータ置換をモリモリ実装してるのは頭おかしいと思う
外部コマンド使え
bashはもうバージョン5だし、補完やらのAPIを外部に晒したのが成功して、対話モードが随分良くなった
2つ入れるのはアリだと思う
名前も念の為分けといた方がいいかもしれない(俺はサボったけど)
ただ、呪文のようなパラメータ置換をモリモリ実装してるのは頭おかしいと思う
外部コマンド使え
189デフォルトの名無しさん
2021/03/29(月) 18:35:37.53ID:wK+S1L2g > ただ、呪文のようなパラメータ置換をモリモリ実装してるのは頭おかしいと思う
> 外部コマンド使え
1/1000ぐらいにパフォーマンス下がるぞw
数値は適当だが
> 外部コマンド使え
1/1000ぐらいにパフォーマンス下がるぞw
数値は適当だが
190デフォルトの名無しさん
2021/03/29(月) 18:38:16.17ID:wK+S1L2g 外部コマンドはパフォーマンスが大幅に低下するだけじゃなく
改行をうまくあつかないという問題がある
変数には改行を入れられるが、外部コマンドだと行区切りとして扱われる
改行をうまくあつかないという問題がある
変数には改行を入れられるが、外部コマンドだと行区切りとして扱われる
191デフォルトの名無しさん
2021/03/29(月) 18:46:02.19ID:CpwX2Qd/ そういえばCatalinaだとこれ↓見ろってでますね
https://support.apple.com/kb/HT208050
https://support.apple.com/kb/HT208050
192デフォルトの名無しさん
2021/03/29(月) 18:59:51.55ID:wK+S1L2g >>191
> macOS Catalina の Bourne 互換シェルとのスクリプトの互換性をテストするには、
> 「/var/select/sh」を「/bin/bash」「/bin/dash」または「/bin/zsh」に変更してみます。
それみてmacOSの/bin/shのサイズが1/10しかない理由がわかったw
man shすれば書いてあったが、macOSの/bin/shはシェル本体じゃなくて
シェル(/var/select/sh、デフォルトは/bin/bashへのシンボリックリンク)
を起動するためのコマンドなのか
どおりでstrings使ったらbashやzshといった文字が見つかるわけだ
/bin/sh をデフォルトのbashから別のシェルに変更したい場合は
シンボリックリンクを変更すれば出来るんだな
ってことはやっぱり単にPOSIXモードが有効になったというだけのbashなのかもな
> macOS Catalina の Bourne 互換シェルとのスクリプトの互換性をテストするには、
> 「/var/select/sh」を「/bin/bash」「/bin/dash」または「/bin/zsh」に変更してみます。
それみてmacOSの/bin/shのサイズが1/10しかない理由がわかったw
man shすれば書いてあったが、macOSの/bin/shはシェル本体じゃなくて
シェル(/var/select/sh、デフォルトは/bin/bashへのシンボリックリンク)
を起動するためのコマンドなのか
どおりでstrings使ったらbashやzshといった文字が見つかるわけだ
/bin/sh をデフォルトのbashから別のシェルに変更したい場合は
シンボリックリンクを変更すれば出来るんだな
ってことはやっぱり単にPOSIXモードが有効になったというだけのbashなのかもな
193デフォルトの名無しさん
2021/03/29(月) 19:55:41.76ID:1/gzKsrI >>191
/bin/dash ってあるから、
次か次の次かで /bin/sh は bash を捨てて(流石に捨てるだろう3ベースのなんて。kshがまだあるから同じように残るか??) の dash になる可能性が大な感じ?
/bin/dash ってあるから、
次か次の次かで /bin/sh は bash を捨てて(流石に捨てるだろう3ベースのなんて。kshがまだあるから同じように残るか??) の dash になる可能性が大な感じ?
194デフォルトの名無しさん
2021/03/29(月) 20:03:13.24ID:wK+S1L2g >>193
bashからdashに変更すると互換性が壊れるからなぁ
まあそれをUbuntuがやってのけたから
互換性気にしないAppleならやるかもな
保守が続いてるdashに変更するか
それともAppleがbashをメンテンスし続けるか
後者でもほぼ修正はないんだから、大変ではないだろうな
bashからdashに変更すると互換性が壊れるからなぁ
まあそれをUbuntuがやってのけたから
互換性気にしないAppleならやるかもな
保守が続いてるdashに変更するか
それともAppleがbashをメンテンスし続けるか
後者でもほぼ修正はないんだから、大変ではないだろうな
195デフォルトの名無しさん
2021/03/29(月) 20:07:19.27ID:KEZ/XNTe196デフォルトの名無しさん
2021/03/29(月) 20:10:44.21ID:1/gzKsrI Appleでメンテするのがめんどくさくなって捨てるのは定番
移行を即すためにも最後のあるんだろうし、dashをも入れてるのは 意味がある ことだろう
Appleの準備が終わったら&Appleが移行期間が終わりと見なしたら変わるだろうな
bashに固執することなんてないし
移行を即すためにも最後のあるんだろうし、dashをも入れてるのは 意味がある ことだろう
Appleの準備が終わったら&Appleが移行期間が終わりと見なしたら変わるだろうな
bashに固執することなんてないし
197デフォルトの名無しさん
2021/03/29(月) 21:01:40.15ID:wK+S1L2g bashは機能拡張とかいうレベルのメンテはしなくていいけど
もしかしたらこれから新たな脆弱性が見つかる可能性もあるからね
そうなると古いbashは公式にはメンテされない
Appleが独自で修正を入れる必要がある
/bin/sh(=/bin/bash)はAppleが手を入れてるからGPLv3だと困るとして
まったく手を入れなくていいとなった場合
macOSに新しいbashをバンドルすることはあるだろうか?
つまり古いbashはいずれにしても問題があるわけで更新しなければいけない
だから/bin/shをdashに変更した後、bash5をバンドルするかなってこと?
それが無理ならdashに変更したらbashを削除することも有り得そう
それを見越してzshに移行しろって言ってるのかもな
もしかしたらこれから新たな脆弱性が見つかる可能性もあるからね
そうなると古いbashは公式にはメンテされない
Appleが独自で修正を入れる必要がある
/bin/sh(=/bin/bash)はAppleが手を入れてるからGPLv3だと困るとして
まったく手を入れなくていいとなった場合
macOSに新しいbashをバンドルすることはあるだろうか?
つまり古いbashはいずれにしても問題があるわけで更新しなければいけない
だから/bin/shをdashに変更した後、bash5をバンドルするかなってこと?
それが無理ならdashに変更したらbashを削除することも有り得そう
それを見越してzshに移行しろって言ってるのかもな
198デフォルトの名無しさん
2021/03/29(月) 21:01:56.86ID:wK+S1L2g つまりbash用スクリプトはmacOSで動かないわけで、
bashを入れるためにはHomebrewを使わなければならないわけで
そうするとbashからdash(POSIX準拠)に書き直す必要があるんじゃないか?w
HomebrewのインストーラーをRubyからBashに書き直しました!
https://itchyny.hatena
blog.com/entry/2020/03/03/100000
これどれくらいbash依存してるんだろう?
bashを入れるためにはHomebrewを使わなければならないわけで
そうするとbashからdash(POSIX準拠)に書き直す必要があるんじゃないか?w
HomebrewのインストーラーをRubyからBashに書き直しました!
https://itchyny.hatena
blog.com/entry/2020/03/03/100000
これどれくらいbash依存してるんだろう?
199デフォルトの名無しさん
2021/03/29(月) 21:13:02.60ID:wK+S1L2g Homebrewのインストーラー
https://raw.githubusercontent.com/Homebrew/install/master/install.sh
ざっと見てみたが、結構長いな
配列使ってるところがread -n 1が少し厄介だな
POSIX準拠させるよりもzshで動くようにしたほうがいいのかもしれんな
しかしこれどうやってテストしたんだろうか
https://raw.githubusercontent.com/Homebrew/install/master/install.sh
ざっと見てみたが、結構長いな
配列使ってるところがread -n 1が少し厄介だな
POSIX準拠させるよりもzshで動くようにしたほうがいいのかもしれんな
しかしこれどうやってテストしたんだろうか
200デフォルトの名無しさん
2021/03/29(月) 21:49:47.52ID:wK+S1L2g ふむ read -n 1 = getchのPOSIX準拠コードはあるようだ
https://qiita.com/miminashi/items/ad060c43c130581b412a
getch() {
old=$(stty -g)
stty raw -echo min 0 time 1
printf '%s' $(dd bs=1 count=1 2>/dev/null)
stty $old
}
じゃああとは配列の置き換えが面倒なだけだな
https://qiita.com/miminashi/items/ad060c43c130581b412a
getch() {
old=$(stty -g)
stty raw -echo min 0 time 1
printf '%s' $(dd bs=1 count=1 2>/dev/null)
stty $old
}
じゃああとは配列の置き換えが面倒なだけだな
201デフォルトの名無しさん
2021/03/30(火) 22:27:21.29ID:jfNjkEti こうなったら世界唯一のリードオンリー言語、applescriptで書き直すしかないな
202デフォルトの名無しさん
2021/03/31(水) 11:33:02.43ID:AtIsL56M arrayも使えないのは正直つらい
コマンドだけど魔改造でびっくらこいたのはlinux版のcolumn.1(kernel.org配布なんで公式のはず)だなあ
linuxなのに-hも--helpも受け付けないbsd版使ってたわ
--jsonとか--treeとかもはやcolumnの域を超越してる
コマンドだけど魔改造でびっくらこいたのはlinux版のcolumn.1(kernel.org配布なんで公式のはず)だなあ
linuxなのに-hも--helpも受け付けないbsd版使ってたわ
--jsonとか--treeとかもはやcolumnの域を超越してる
203デフォルトの名無しさん
2021/03/31(水) 12:20:25.54ID:ekNiD538 配列なんていらんと思ってるけど、何に使ってるか聞いていい?
できれば難しいケースでw
できれば難しいケースでw
204デフォルトの名無しさん
2021/03/31(水) 12:34:19.85ID:AtIsL56M ごめん、単語分割めんどいので全部突っ込みます
205デフォルトの名無しさん
2021/03/31(水) 12:37:32.99ID:ekNiD538 >>204
https://github.com/koalaman/shellcheck/wiki/SC2086
こうやりたいのなら
options="-j 5 -B"
make $options file
こうやればいい
make_with_flags() { make -j 5 -B "$@"; }
make_with_flags file
配列はやっぱり、いらんのよなぁ
https://github.com/koalaman/shellcheck/wiki/SC2086
こうやりたいのなら
options="-j 5 -B"
make $options file
こうやればいい
make_with_flags() { make -j 5 -B "$@"; }
make_with_flags file
配列はやっぱり、いらんのよなぁ
206デフォルトの名無しさん
2021/03/31(水) 12:43:15.98ID:ekNiD538 単語分割は値にスペースが入ってるときに困るんで基本使わないよ。
その上で配列いらんと思ってる。>>205に書いた通り
その上で配列いらんと思ってる。>>205に書いた通り
207デフォルトの名無しさん
2021/03/31(水) 16:10:08.25ID:AtIsL56M >>205
ああwikiにもデバッグにもお世話になってるわshellcheck様々
まあそうなんだけど、逆に割りたいところでは割りたい時にも文字列より便利なんだよなコマンド組み立てとか
そもそも俺のは乱用であって、配列本来の用途は添字で引くことでしたね!
mktempしてpaste key valueを流し込み、
grep ^key^I |cut -f2-
で引くとかぱっと思いつくけど、汚え
なんか良い方法あったらご教授頂きたい
ああwikiにもデバッグにもお世話になってるわshellcheck様々
まあそうなんだけど、逆に割りたいところでは割りたい時にも文字列より便利なんだよなコマンド組み立てとか
そもそも俺のは乱用であって、配列本来の用途は添字で引くことでしたね!
mktempしてpaste key valueを流し込み、
grep ^key^I |cut -f2-
で引くとかぱっと思いつくけど、汚え
なんか良い方法あったらご教授頂きたい
208デフォルトの名無しさん
2021/03/31(水) 16:20:02.26ID:AtIsL56M まずmktempじゃなくて文字列変数でいいな、最大サイズとか規格にありそうだけどとりあえず
209デフォルトの名無しさん
2021/03/31(水) 16:54:44.20ID:0ggCFJWv 配列は普通キーと値を追加して育てるので'key sep val '>>で追記
二度同じキーを入れると複数引っかかるので
tac |grep -m1あるいはtail -n1
とりあえずkey sep>>で空文字が返るでよしとする
でもunsetと区別できない
セパレータはタブよりヌル文字にあたりにしたほうが無難そう
ボロボロ出てくるんで出直してきます…
二度同じキーを入れると複数引っかかるので
tac |grep -m1あるいはtail -n1
とりあえずkey sep>>で空文字が返るでよしとする
でもunsetと区別できない
セパレータはタブよりヌル文字にあたりにしたほうが無難そう
ボロボロ出てくるんで出直してきます…
210デフォルトの名無しさん
2021/03/31(水) 20:23:49.38ID:rlnsgVLR >>207-209
ちゃんと読んでないけど
コマンド組み立てならこんな感じ
[ "$FLAG" = "on" ] && set -- -f "$@"
[ -e "$FILE" ] && set -- --file "$FILE" "$@"
cmd "$@"
添字で引きたいならこんな感じ
set -- a b c
echo $2
grep ^key^I |cut -f2- なら、次のようにすればgrepもcutも使わなくても出来るよ
while IFS="$TAB" read -r key value; do
echo "$value"
done
一般的なプログラムでは配列あったほうがいいけど
シェルスクリプトでやるような内容で配列なんかいらない
ただみんなシェルスクリプトを雰囲気でやってて知らないだけ
ちゃんと読んでないけど
コマンド組み立てならこんな感じ
[ "$FLAG" = "on" ] && set -- -f "$@"
[ -e "$FILE" ] && set -- --file "$FILE" "$@"
cmd "$@"
添字で引きたいならこんな感じ
set -- a b c
echo $2
grep ^key^I |cut -f2- なら、次のようにすればgrepもcutも使わなくても出来るよ
while IFS="$TAB" read -r key value; do
echo "$value"
done
一般的なプログラムでは配列あったほうがいいけど
シェルスクリプトでやるような内容で配列なんかいらない
ただみんなシェルスクリプトを雰囲気でやってて知らないだけ
211デフォルトの名無しさん
2021/03/31(水) 20:37:35.81ID:fnN7hvaV でも、PerlもPythonもないけど、いれるほどでもない用事のときには、Bashくらいが適当かつ充分だったりするからね。
212デフォルトの名無しさん
2021/03/31(水) 20:43:11.59ID:rlnsgVLR へー、fi って終了って意味だったのか。勉強になった
https://www.dict.com/%E3%82%AB%E3%82%BF%E3%83%AB%E3%83%BC%E3%83%8B%E3%83%A3%E8%AA%9E-%E6%97%A5%E6%9C%AC%E8%AA%9E/fi
fi, -na [fi]
終了, 終止, 終わり, おしまい, 最後, 結末, 終結
https://www.dict.com/%E3%82%AB%E3%82%BF%E3%83%AB%E3%83%BC%E3%83%8B%E3%83%A3%E8%AA%9E-%E6%97%A5%E6%9C%AC%E8%AA%9E/fi
fi, -na [fi]
終了, 終止, 終わり, おしまい, 最後, 結末, 終結
213デフォルトの名無しさん
2021/03/31(水) 20:44:51.45ID:rlnsgVLR >>211
そのBashくらいが〜が俺にとっては、Dash(POSIX準拠)で十分なんだよね
そのBashくらいが〜が俺にとっては、Dash(POSIX準拠)で十分なんだよね
214デフォルトの名無しさん
2021/03/31(水) 21:13:09.30ID:4SvaIgPh まじかよ、じゃあesacもすげー意味に違いないな
215デフォルトの名無しさん
2021/03/31(水) 21:16:15.45ID:1zeQu1PP216デフォルトの名無しさん
2021/03/31(水) 22:31:27.28ID:rlnsgVLR 実際fiって映画の最後のfinから来てるのかもな
217デフォルトの名無しさん
2021/04/01(木) 03:14:03.54ID:B5PjUTjB ここが教養スレだ!
218デフォルトの名無しさん
2021/04/01(木) 14:47:29.53ID:9tfGPqCh シェルスクリプトじゃないけど、質問。
makeで、ターゲット実行が成功しても失敗しても、最後に後始末みたいな処理をさせる方法はない?
bashならtrap ... EXITでできるけど。
makeで、ターゲット実行が成功しても失敗しても、最後に後始末みたいな処理をさせる方法はない?
bashならtrap ... EXITでできるけど。
219デフォルトの名無しさん
2021/04/01(木) 15:17:09.43ID:Hb/UV5K1220デフォルトの名無しさん
2021/04/01(木) 21:35:25.25ID:HbnIL0Hw >>219
ああ、pipefailの意味をやっと理解したわ
bashのinfo何度も通読してるはずなんだけど、last commandのステータスを返すって当たり前じゃね、ってスルーしてた…
限りなくバグに近い仕様ってやつか
ああ、pipefailの意味をやっと理解したわ
bashのinfo何度も通読してるはずなんだけど、last commandのステータスを返すって当たり前じゃね、ってスルーしてた…
限りなくバグに近い仕様ってやつか
221デフォルトの名無しさん
2021/04/01(木) 22:02:03.77ID:B5PjUTjB 互換性オプションはマニュアル読んでも例を見ないと分からない物が多いと思う
222デフォルトの名無しさん
2021/04/01(木) 22:26:08.86ID:o5XCnMGW makeの欠点はシェルの文法を混ぜ込むことだよな
223デフォルトの名無しさん
2021/04/01(木) 23:47:14.73ID:I05CY+G0 >>219
ちゃうねん、もう一声!
ひとつのターゲットの中での最後じゃなく、依存関係にあるターゲットでも、並列のターゲットでも、とにかくすべての最後に処理をやらせたいんや。
ちなみに、そのページは見てたけど、流してたわ。w
あらためて見直すと、意義がわかった。
ありがとやで!
ちゃうねん、もう一声!
ひとつのターゲットの中での最後じゃなく、依存関係にあるターゲットでも、並列のターゲットでも、とにかくすべての最後に処理をやらせたいんや。
ちなみに、そのページは見てたけど、流してたわ。w
あらためて見直すと、意義がわかった。
ありがとやで!
224デフォルトの名無しさん
2021/04/01(木) 23:49:43.54ID:I05CY+G0225デフォルトの名無しさん
2021/04/02(金) 00:09:16.86ID:sr96G99p226デフォルトの名無しさん
2021/04/02(金) 02:22:57.94ID:xkKIrGbu227デフォルトの名無しさん
2021/04/02(金) 02:28:01.75ID:sr96G99p Pythonスクリプトの問題点
1. makeのように依存ファイルに基づいた処理を行うのが大変
2. makeでやっていたような処理はシェルスクリプトで書いたほうが簡潔に書ける
なんでPythonのようなタスクを行うのに
適してない言語を使おうとするのかわからない
1. makeのように依存ファイルに基づいた処理を行うのが大変
2. makeでやっていたような処理はシェルスクリプトで書いたほうが簡潔に書ける
なんでPythonのようなタスクを行うのに
適してない言語を使おうとするのかわからない
228デフォルトの名無しさん
2021/04/02(金) 11:31:17.73ID:ebi/L5xP make相当のもあるし最近良くなったので(PEP517)、python+c拡張のプロジェクトでなら従った方がいい
わざわざビルドプロセスだけpythonで書いて添えるんならやめとけ
わざわざビルドプロセスだけpythonで書いて添えるんならやめとけ
229デフォルトの名無しさん
2021/04/02(金) 13:02:49.67ID:xkKIrGbu230デフォルトの名無しさん
2021/04/02(金) 13:20:46.71ID:sr96G99p >>229
そんなsedはゲームにも使えるんやで!みたいなことを言われてもな
sedで書かれたチェスがもの凄い件
https://softantenna.com/wp/unknown/chess-written-in-sed/
> sedで書かれたテトリス「sedtris」なんてものまであるようです。
自分が得意な言語じゃなくて適切な道具を使いましょうってだけ
make使ってなにかのコマンドを実行してたんだろ?
ならそれはシェルスクリプトが適切な道具だ
Pythonじゃない。Pythonで書くと倍以上にコードが長くなるだろう
そんなsedはゲームにも使えるんやで!みたいなことを言われてもな
sedで書かれたチェスがもの凄い件
https://softantenna.com/wp/unknown/chess-written-in-sed/
> sedで書かれたテトリス「sedtris」なんてものまであるようです。
自分が得意な言語じゃなくて適切な道具を使いましょうってだけ
make使ってなにかのコマンドを実行してたんだろ?
ならそれはシェルスクリプトが適切な道具だ
Pythonじゃない。Pythonで書くと倍以上にコードが長くなるだろう
231デフォルトの名無しさん
2021/04/02(金) 13:27:11.24ID:s72UfXRI それもよく言われるけど落とし穴が多すぎる、現にハマってるようだし他の方法を考えた方が
232デフォルトの名無しさん
2021/04/02(金) 13:27:52.24ID:s72UfXRI >>229宛てね
233デフォルトの名無しさん
2021/04/02(金) 13:36:01.88ID:ebi/L5xP なるべく基本ユティリティでやりたくて、makeで融通が効かないタスクの自動順序解決&実行ならtsortを使うのが良い
234デフォルトの名無しさん
2021/04/02(金) 13:46:20.17ID:ebi/L5xP 何がやりたいのか小出しでよくわからんね
makeはtsort+ビルド向けの機能のセットであって、ビルドに使わないなら必要としてるのはtsortの部分だろ
makeはtsort+ビルド向けの機能のセットであって、ビルドに使わないなら必要としてるのはtsortの部分だろ
235デフォルトの名無しさん
2021/04/02(金) 14:06:24.57ID:qkslRrVn 具体的にどうタイムスタンプ(に限らないが)を取ってきてコマンドと結合しtsortにかけ、出力を整形して実行するのか
みたいな事なら答えてやれるし、それがこのスレの趣旨だろう
みたいな事なら答えてやれるし、それがこのスレの趣旨だろう
236デフォルトの名無しさん
2021/04/02(金) 14:16:05.96ID:W1Cqjj5x 単にタスクランナーとして使ってるだけかもしれんし、質問者が出してない情報を推測であれこれ言うのはやめよう
237デフォルトの名無しさん
2021/04/02(金) 17:21:25.62ID:l3SG9gZX #!/bin/sh
# >>14
# 外国籍の者が日本人に成り済ますために使う「通名」作成スクリプトを実行し
# 当たり玉を3回以上出した者をPOSIX中心主義者と見なしコレ以降の書き込みを禁じる
KIM=1
while [ $KIM -lt 21 ]
do
echo "$KIM回目"
KIM=$( expr $KIM + 1 )
NAME=$( shuf -e 村 崎 本 田 山 玉 子 -n 1 )
if [ "$NAME" = "玉" ]
then tput setaf 3 && echo "金$NAME"; tput sgr0
else echo "金$NAME"
fi
sleep $(( $(od -vAn -N3 -i /dev/random) % 5 ))
done
# >>14
# 外国籍の者が日本人に成り済ますために使う「通名」作成スクリプトを実行し
# 当たり玉を3回以上出した者をPOSIX中心主義者と見なしコレ以降の書き込みを禁じる
KIM=1
while [ $KIM -lt 21 ]
do
echo "$KIM回目"
KIM=$( expr $KIM + 1 )
NAME=$( shuf -e 村 崎 本 田 山 玉 子 -n 1 )
if [ "$NAME" = "玉" ]
then tput setaf 3 && echo "金$NAME"; tput sgr0
else echo "金$NAME"
fi
sleep $(( $(od -vAn -N3 -i /dev/random) % 5 ))
done
238デフォルトの名無しさん
2021/04/02(金) 17:37:09.20ID:sr96G99p POSIX中心主義ってあれ生きてるの?
もう虫の息なきがw
もう虫の息なきがw
239デフォルトの名無しさん
2021/04/02(金) 18:12:13.70ID:Ka7wreYU 煽ってくる質問者なんてほっとけ
240デフォルトの名無しさん
2021/04/02(金) 18:17:16.53ID:hbCxlU+U 移植性や持続性っても、
移植性ってただ他でも動くでしかないし、
持続性ってただ変わらない=古いのに固執でしかないし
メンテナンス性は軽視もしくは考慮外だからな(命名のいい加減さから考慮してないだろうなw)
その面が実務者(新しい人だけど)に公にやんわりとw指摘されて瀕死かな
移植性ってただ他でも動くでしかないし、
持続性ってただ変わらない=古いのに固執でしかないし
メンテナンス性は軽視もしくは考慮外だからな(命名のいい加減さから考慮してないだろうなw)
その面が実務者(新しい人だけど)に公にやんわりとw指摘されて瀕死かな
241デフォルトの名無しさん
2021/04/02(金) 18:25:37.14ID:2zuzxBMS >>240
日本語でOK
日本語でOK
242デフォルトの名無しさん
2021/04/02(金) 18:35:13.75ID:hbCxlU+U 自分の無知を人の日本語wのせいにするんじゃないよ
243デフォルトの名無しさん
2021/04/02(金) 18:42:19.12ID:ebi/L5xP tsortはmakeのような動的依存解決&コード生成に使う発想は無かったわ
確かにスクリプト中でタイムスタンプでソート(sort)してからtsortすればmakeの基本機能はカバーできるが、実行したいコマンドを直接書くのはセパレータの扱いや依存が一つしか書けないなど厄介
書き散らしたシェル関数/コマンド"名"を直列に依存解決してダンプ、リファクタリングの参考にするのには気軽でいい
確かにスクリプト中でタイムスタンプでソート(sort)してからtsortすればmakeの基本機能はカバーできるが、実行したいコマンドを直接書くのはセパレータの扱いや依存が一つしか書けないなど厄介
書き散らしたシェル関数/コマンド"名"を直列に依存解決してダンプ、リファクタリングの参考にするのには気軽でいい
244デフォルトの名無しさん
2021/04/02(金) 19:16:18.60ID:1/Ara7QU 進捗率表示してくれるpvコマンドってどうなの?
やっぱその分処理遅くなったりする?
やっぱその分処理遅くなったりする?
245デフォルトの名無しさん
2021/04/02(金) 19:16:25.76ID:ebi/L5xP 見かけ上無引数のシェル関数で包めば、とりあえず簡単に動くコードは吐けるか
あんまりやりすぎるとmakeでタスクランナーと変わらんが
あんまりやりすぎるとmakeでタスクランナーと変わらんが
246デフォルトの名無しさん
2021/04/02(金) 19:37:10.62ID:ebi/L5xP247デフォルトの名無しさん
2021/04/02(金) 19:42:14.08ID:ebi/L5xP たぶん求められている答えじゃないかもしれないけど…
ことパイプに関しては前後のコマンドすらスループットに大いに関係がある
特に挟まれる前提のコマンドなら、それ単体で遅い速いを言うのは意味がない
ことパイプに関しては前後のコマンドすらスループットに大いに関係がある
特に挟まれる前提のコマンドなら、それ単体で遅い速いを言うのは意味がない
248デフォルトの名無しさん
2021/04/02(金) 20:08:48.33ID:ITrGzi0M 進捗確認ツールならそれ自体は多分十分気をつけてるだろ、通信先が病的なら気をつけても無駄だが
遅くて困ってからstdbufとか試せば
どうしても必要なものとは思えないけど、インストールスクリプト等でこだわりがあるなら
遅くて困ってからstdbufとか試せば
どうしても必要なものとは思えないけど、インストールスクリプト等でこだわりがあるなら
249デフォルトの名無しさん
2021/04/02(金) 20:45:04.78ID:B/D63v/Y 確かにこれに限らずパイプ通しただけでもわからんよな
それ用のコマンドだから意識してるとは思うが
それ用のコマンドだから意識してるとは思うが
250デフォルトの名無しさん
2021/04/02(金) 22:49:58.28ID:Gl9s1y4K straceするんだ
ファイルIO想定で書いたけど、ストリームも一応(ロジックそのままで)対応しとくかみたいな奴が腐ったミカン
内部バッファにある程度貯めて処理するのが理想だけど、パイプラインのパーツはそうじゃない
こまめに空パイプ覗きに行って藪蛇ブロック、貯めたデータの処理止まってたり
時々ドバっと書き出すから後続はずっとアイドル
なんかインピーダンスみたいだな
ファイルIO想定で書いたけど、ストリームも一応(ロジックそのままで)対応しとくかみたいな奴が腐ったミカン
内部バッファにある程度貯めて処理するのが理想だけど、パイプラインのパーツはそうじゃない
こまめに空パイプ覗きに行って藪蛇ブロック、貯めたデータの処理止まってたり
時々ドバっと書き出すから後続はずっとアイドル
なんかインピーダンスみたいだな
251デフォルトの名無しさん
2021/04/02(金) 22:56:06.54ID:Gl9s1y4K リーダ/メイン/ライタの3プロセスで1コマンド構成するのがベストになんだろうが、めんどくさいな…
pvみたいに統計取るだけの奴は、読んだ分をそのまま書き出すだろうから、それ自身が問題起こすことは考えにくいかと
ところで、誰かtime したかー?
pvみたいに統計取るだけの奴は、読んだ分をそのまま書き出すだろうから、それ自身が問題起こすことは考えにくいかと
ところで、誰かtime したかー?
252デフォルトの名無しさん
2021/04/02(金) 23:12:36.74ID:nXGaO3xM タスクランナーなら、
Jenkins,
Ruby のRake, Thor,
JavaScript のnpm scripts, gulp
Jenkins,
Ruby のRake, Thor,
JavaScript のnpm scripts, gulp
253デフォルトの名無しさん
2021/04/02(金) 23:21:07.01ID:Gl9s1y4K 俺は他の使ってるが、単なるオレオレタスクランナーならモダン言語で良いの山ほどあるしな
やっぱり何でもmakeマンには賛同できないわ
やっぱり何でもmakeマンには賛同できないわ
254デフォルトの名無しさん
2021/04/02(金) 23:22:46.09ID:Gl9s1y4K どうせ自分用なんだから好きなの使えば良いわけだし
255デフォルトの名無しさん
2021/04/02(金) 23:55:49.61ID:Fe5X0u2X 複数の言語を使ってるとなんで言語ごとに
タスクランナーを変えなきゃいけないんだよと思う
大したことなんかしないだろ
タスクランナーを変えなきゃいけないんだよと思う
大したことなんかしないだろ
256デフォルトの名無しさん
2021/04/03(土) 00:05:04.26ID:hWVbhofL >>255
高度な機能を実装する為にモダン言語使っているというだけで、自分の好きなシェルを指定して、そのシェル文法で書くのが主流だと思うよ
(思う、というのはホスト言語の構文ももちろん使えるから、他人は知らん)
.ONESHELLみたいな汚いワークアラウンドも要らないしmakeよりはbsh
高度な機能を実装する為にモダン言語使っているというだけで、自分の好きなシェルを指定して、そのシェル文法で書くのが主流だと思うよ
(思う、というのはホスト言語の構文ももちろん使えるから、他人は知らん)
.ONESHELLみたいな汚いワークアラウンドも要らないしmakeよりはbsh
257デフォルトの名無しさん
2021/04/03(土) 00:12:46.44ID:YB/KO+42 Makefileは真のタスクランナー(シェルスクリプト)の
よく使う使い方を書いたサンプルファイルだよw
makeコマンドが入っていれば、makeコマンドで実行できるし
入ってないならMakefileの中を見て
そこに書いてるサンプルを直接実行するもの
よく使う使い方を書いたサンプルファイルだよw
makeコマンドが入っていれば、makeコマンドで実行できるし
入ってないならMakefileの中を見て
そこに書いてるサンプルを直接実行するもの
258デフォルトの名無しさん
2021/04/03(土) 00:23:20.08ID:r67/WY6G makeがcで書かれてるからといってcでルールかかない
259デフォルトの名無しさん
2021/04/03(土) 00:24:59.87ID:r67/WY6G のと同じか
スレチぎみだけどbashで書けるオススメおしえろ
スレチぎみだけどbashで書けるオススメおしえろ
260デフォルトの名無しさん
2021/04/03(土) 00:28:21.58ID:YB/KO+42 > bashで書けるオススメおしえろ
どういう意味?
makeは依存ファイルに基づいてビルドするターゲットを決めるものだけど
その機能を使わないで、ただのタスクランナーとして使うなら
普通にシェルスクリプトにコード書けばいいんじゃん?
よくinstall.shとかあるでしょ?
インストールというタスクを実行してる
どういう意味?
makeは依存ファイルに基づいてビルドするターゲットを決めるものだけど
その機能を使わないで、ただのタスクランナーとして使うなら
普通にシェルスクリプトにコード書けばいいんじゃん?
よくinstall.shとかあるでしょ?
インストールというタスクを実行してる
261デフォルトの名無しさん
2021/04/03(土) 00:37:33.71ID:r67/WY6G >>260
ロジック頭から追わなくてもルールベースで書けるってのが意義では、ここだけmake信者の気持ちは理解できる
カジュアル用途なら再コンパイル判定は要らないし、トポロジカルソートだけしてくれれば大体みんな満足でしょう
シェルオタとしては上の方に出てるtsort実装もやってみたくはある
ロジック頭から追わなくてもルールベースで書けるってのが意義では、ここだけmake信者の気持ちは理解できる
カジュアル用途なら再コンパイル判定は要らないし、トポロジカルソートだけしてくれれば大体みんな満足でしょう
シェルオタとしては上の方に出てるtsort実装もやってみたくはある
262デフォルトの名無しさん
2021/04/03(土) 00:40:42.08ID:YB/KO+42 >>261
ルールって何?ルールがなにもないんだけど?
ルールって何?ルールがなにもないんだけど?
263デフォルトの名無しさん
2021/04/03(土) 00:42:44.05ID:r67/WY6G264デフォルトの名無しさん
2021/04/03(土) 00:52:45.70ID:r67/WY6G >>262
connect: lounch-serverみたいな感じ、これなら生tsortでも済むけど
connect: lounch-serverみたいな感じ、これなら生tsortでも済むけど
265デフォルトの名無しさん
2021/04/03(土) 00:53:12.25ID:YB/KO+42 >>263
適切な順番に並べればいいだけじゃん?
例えばmake.shとか作って
task1() { ・・・}
task2() { ・・・}
task3() { ・・・}
cmd1() {
task1
task2
task3
}
"$@"
とか書けば、make.sh cmd1でこの順番通りに実行できるでしょ?
task2がtask3に絶対依存するってものなら
task2の中からtask3を呼び出せばいいだけだし
シンプルな手続き型で書けることを
知らなきゃわからない独自の定義構文で書くのってアホらしいと思う
適切な順番に並べればいいだけじゃん?
例えばmake.shとか作って
task1() { ・・・}
task2() { ・・・}
task3() { ・・・}
cmd1() {
task1
task2
task3
}
"$@"
とか書けば、make.sh cmd1でこの順番通りに実行できるでしょ?
task2がtask3に絶対依存するってものなら
task2の中からtask3を呼び出せばいいだけだし
シンプルな手続き型で書けることを
知らなきゃわからない独自の定義構文で書くのってアホらしいと思う
266デフォルトの名無しさん
2021/04/03(土) 00:55:23.30ID:r67/WY6G 依存とレシピを同一視できるのが強みじゃないかな
267デフォルトの名無しさん
2021/04/03(土) 00:56:16.66ID:YB/KO+42 なんのために?
268デフォルトの名無しさん
2021/04/03(土) 00:57:18.69ID:r67/WY6G 簡潔性
269デフォルトの名無しさん
2021/04/03(土) 00:58:12.59ID:YB/KO+42 >>265がより簡潔になるというのなら
それを見せてほしいが
それを見せてほしいが
270デフォルトの名無しさん
2021/04/03(土) 01:06:37.77ID:r67/WY6G >>269
適切な順番に並べたのなら書き直さなくていいよ、適切に並べる為の仕組みの話で
あと簡潔というのは各記述の話であってコード全体が簡潔になるという意味ではないぞ…むしろトポロジカルソート直列化後のコードは一般に冗長になる
適切な順番に並べたのなら書き直さなくていいよ、適切に並べる為の仕組みの話で
あと簡潔というのは各記述の話であってコード全体が簡潔になるという意味ではないぞ…むしろトポロジカルソート直列化後のコードは一般に冗長になる
271デフォルトの名無しさん
2021/04/03(土) 01:14:42.13ID:r67/WY6G つーかいい実装無いか尋ねてる俺になぜ聞く…
独特のレス見るに月末に初心者イビってた奴か?
独特のレス見るに月末に初心者イビってた奴か?
272デフォルトの名無しさん
2021/04/03(土) 01:14:50.26ID:YB/KO+42 適切に並べる為の仕組み?
どの順番で実行すべきかなんて人が知ってる
どの順番で実行すべきかなんて人が知ってる
273デフォルトの名無しさん
2021/04/03(土) 01:16:18.50ID:r67/WY6G などとautotoolsもcmakeもわけわかんねー事をほざいでおります
274デフォルトの名無しさん
2021/04/03(土) 01:18:13.59ID:r67/WY6G タイポしちゃった、わけわかんねー、の前に、"も理解できないオッサン"を補って読んでください
275デフォルトの名無しさん
2021/04/03(土) 01:20:35.91ID:YB/KO+42 >>273
autotoolsもcmakeも「発生した問題」を解決するためのツールであって
問題が発生してないのに、使うものではないと言ってます。
タスクランナーごときで問題が発生しますか?
まさにKeep it simple stupidの話だよ
シンプルにしておけ
autotoolsもcmakeも「発生した問題」を解決するためのツールであって
問題が発生してないのに、使うものではないと言ってます。
タスクランナーごときで問題が発生しますか?
まさにKeep it simple stupidの話だよ
シンプルにしておけ
276デフォルトの名無しさん
2021/04/03(土) 01:34:22.75ID:r67/WY6G277デフォルトの名無しさん
2021/04/03(土) 01:37:02.86ID:YB/KO+42 > 問題が起きないようアルゴリズムに任せるとこは任せましょう
無理です。どちらにしろ人間が依存関係の情報を書かなければいけません。
単に書き方が変わってるだけです。
無理です。どちらにしろ人間が依存関係の情報を書かなければいけません。
単に書き方が変わってるだけです。
278デフォルトの名無しさん
2021/04/03(土) 01:41:25.51ID:r67/WY6G そういう意見はここじゃやくてそれらのツール、あと
>>252
Jenkins,
Ruby のRake, Thor,
JavaScript のnpm scripts, gulp
のメーリスにでも投稿してくれ
もしかしたら世の役に立たないこともないかもしれん
>>252
Jenkins,
Ruby のRake, Thor,
JavaScript のnpm scripts, gulp
のメーリスにでも投稿してくれ
もしかしたら世の役に立たないこともないかもしれん
279デフォルトの名無しさん
2021/04/03(土) 01:44:38.22ID:YB/KO+42 ここまでレスの応酬を続けておきながら、
今更そんなレスをするっていうのは
これ以上言い返せなくなったからということなんですね
今更そんなレスをするっていうのは
これ以上言い返せなくなったからということなんですね
280デフォルトの名無しさん
2021/04/03(土) 01:44:39.70ID:r67/WY6G 昨日結構賑わいあって久々に良い感じの雰囲気だったのに、ID真っ赤にして空気乱してすまんかった
大人げない、反省
大人げない、反省
281デフォルトの名無しさん
2021/04/03(土) 01:45:59.57ID:ANUlY9KL282デフォルトの名無しさん
2021/04/03(土) 01:53:31.65ID:YB/KO+42 >>281
お前が、俺の勝ちに見えるのなら、そうなんだろうな
お前が、俺の勝ちに見えるのなら、そうなんだろうな
283デフォルトの名無しさん
2021/04/03(土) 01:56:49.08ID:K2jZ2c+V こいつが絡むといつもこう、目的が↑これが冗談じゃないからな
284デフォルトの名無しさん
2021/04/03(土) 13:13:41.11ID:eS+08rtw チャンピオンの誕生を祝して専スレを建てよう
敗者も向学のためご一緒にどうぞ
敗者も向学のためご一緒にどうぞ
285デフォルトの名無しさん
2021/04/03(土) 13:19:21.91ID:G0wsjcxM それは良い考え。チャンピオンを称えてそうしてくれるとありがたい
286デフォルトの名無しさん
2021/04/03(土) 15:48:41.71ID:cpKOTPf8 >>236
当たらずとも遠からず。
目的は、サーバーテスト。
で、テスト終了後にサーバーを始末したかったんや。。。
>>265
そんなんするくらいなら、makefileのほうが万倍マシやな!w
makeと違って、個別ターゲットの指定もできないし。
>>235
tsortを持ち出す教える君は、上から教えたい気持ちが漏れすぎやで!
https://togetter.com/li/1685
当たらずとも遠からず。
目的は、サーバーテスト。
で、テスト終了後にサーバーを始末したかったんや。。。
>>265
そんなんするくらいなら、makefileのほうが万倍マシやな!w
makeと違って、個別ターゲットの指定もできないし。
>>235
tsortを持ち出す教える君は、上から教えたい気持ちが漏れすぎやで!
https://togetter.com/li/1685
287デフォルトの名無しさん
2021/04/03(土) 15:51:10.04ID:cpKOTPf8288デフォルトの名無しさん
2021/04/04(日) 04:15:28.57ID:Y9bxvDcN >>286
> そんなんするくらいなら、makefileのほうが万倍マシやな!w
> makeと違って、個別ターゲットの指定もできないし。
たった>>265のコードだけで個別ターゲット指定できてるんだが?w
makeの「依存ファイルに基づいてビルドするターゲットを決める」という
メイン機能を使わないなら>>265だけでいい。
シバンがないからこれがシェルスクリプト全体だってわからなかったか?
#!/bin/sh
target1() { echo "target1"; }
target2() { echo "target2"; }
target3() { echo "target3"; }
"$@"
↑これをmake.shとかいうファイル名で作って
./make.sh target1ってやってみ、ちゃんと動作するから
もし ./make.sh target1 target2 target3 みたいに
複数ターゲット指定できるようにしたいなら単にループすればいい
for target in "$@"; do
"$target"
done
お前にとってのmakeの価値はこのたった3行のコードにすぎんよ
一行でも書けるがw
# お前に必要なmakeコマンドの実装
for target; do "$target"; done
> そんなんするくらいなら、makefileのほうが万倍マシやな!w
> makeと違って、個別ターゲットの指定もできないし。
たった>>265のコードだけで個別ターゲット指定できてるんだが?w
makeの「依存ファイルに基づいてビルドするターゲットを決める」という
メイン機能を使わないなら>>265だけでいい。
シバンがないからこれがシェルスクリプト全体だってわからなかったか?
#!/bin/sh
target1() { echo "target1"; }
target2() { echo "target2"; }
target3() { echo "target3"; }
"$@"
↑これをmake.shとかいうファイル名で作って
./make.sh target1ってやってみ、ちゃんと動作するから
もし ./make.sh target1 target2 target3 みたいに
複数ターゲット指定できるようにしたいなら単にループすればいい
for target in "$@"; do
"$target"
done
お前にとってのmakeの価値はこのたった3行のコードにすぎんよ
一行でも書けるがw
# お前に必要なmakeコマンドの実装
for target; do "$target"; done
289252
2021/04/04(日) 06:36:12.78ID:0QnJQanX290デフォルトの名無しさん
2021/04/04(日) 06:54:28.00ID:Y9bxvDcN291デフォルトの名無しさん
2021/04/04(日) 10:55:57.93ID:Y9bxvDcN たまたまビルドを作る必要があってMakefileにちゃんと依存関係を書いてみたが
やっぱり数個程度のファイルしかない場合は過剰なんだよなw
そしてその依存関係の定義はちゃんと正しいのか見なきゃいけなないという
タスクごとにそのまま書いたほうが分かりやすいっていうね
やっぱり数個程度のファイルしかない場合は過剰なんだよなw
そしてその依存関係の定義はちゃんと正しいのか見なきゃいけなないという
タスクごとにそのまま書いたほうが分かりやすいっていうね
292デフォルトの名無しさん
2021/04/04(日) 12:21:35.65ID:Y9bxvDcN 依存関係の定義なくしたw
正確に言えば依存ファイルの定義だな
依存のタスクは残しているが、依存ファイルはどうでもいいや
タスクを実行したら最初からビルドしなおしても時間はかからんし
正確に言えば依存ファイルの定義だな
依存のタスクは残しているが、依存ファイルはどうでもいいや
タスクを実行したら最初からビルドしなおしても時間はかからんし
293デフォルトの名無しさん
2021/04/04(日) 12:30:56.36ID:sWeAOgyW 矮小化した自分に都合に良い条件でしか考えられない
連投さえして同じとこぐるぐる回ってるだけって馬鹿犬かよ
連投さえして同じとこぐるぐる回ってるだけって馬鹿犬かよ
294デフォルトの名無しさん
2021/04/04(日) 12:42:29.55ID:Y9bxvDcN 自分に都合に良い条件で考えるのは足り前
正確に言えば、実際のプロジェクトにいい条件ってこと
架空のプロジェクトを相手にしたってしょうがない
正確に言えば、実際のプロジェクトにいい条件ってこと
架空のプロジェクトを相手にしたってしょうがない
295デフォルトの名無しさん
2021/04/04(日) 13:10:39.02ID:sWeAOgyW プロジェクトってw
想像できませんってだけのそんなレスできるんだから趣味での経験しかないんだろうな
吠えて煩いだけの馬鹿犬だな
想像できませんってだけのそんなレスできるんだから趣味での経験しかないんだろうな
吠えて煩いだけの馬鹿犬だな
296デフォルトの名無しさん
2021/04/04(日) 13:30:29.59ID:rmqTiba5 >>288
all : task1 task2 task3
task1: prepare
task2: prepare
task3: prepare
prepare :
という構成で、タスクは並列可、prepareは超重い、となると、makeが最適解やろ。
all : task1 task2 task3
task1: prepare
task2: prepare
task3: prepare
prepare :
という構成で、タスクは並列可、prepareは超重い、となると、makeが最適解やろ。
297デフォルトの名無しさん
2021/04/04(日) 15:51:18.30ID:Y9bxvDcN298デフォルトの名無しさん
2021/04/04(日) 15:53:37.76ID:Y9bxvDcN299デフォルトの名無しさん
2021/04/04(日) 16:57:04.88ID:WsuFFQM2 狂犬
300デフォルトの名無しさん
2021/04/04(日) 19:44:32.02ID:rmqTiba5 >>298
勝手に終わりにしとるだけやん!w
勝手に終わりにしとるだけやん!w
301デフォルトの名無しさん
2021/04/05(月) 04:28:41.70ID:gsx4ZFoJ 終わりじゃない理由でもあるの?
302デフォルトの名無しさん
2021/04/05(月) 06:19:20.07ID:3jUc8O+L prepare無視して勝手に終わりにしてるってとこだろ
無視というかただわかってないからだろうけど
無視というかただわかってないからだろうけど
303デフォルトの名無しさん
2021/04/05(月) 06:33:48.44ID:Ir9xQslo そう言われてから出すとしたら等価ではないのをまた出しそうでだな
304デフォルトの名無しさん
2021/04/05(月) 08:37:32.95ID:gsx4ZFoJ その前にprepareが何なのか言えよ
ただ実行する以外に何が違うのか書いてないのに
あとつけで違うとか言うなよ
ただ実行する以外に何が違うのか書いてないのに
あとつけで違うとか言うなよ
305デフォルトの名無しさん
2021/04/05(月) 08:49:07.73ID:Ir9xQslo わかってないこと多すぎなのになぜもそう偉そうなのか
306デフォルトの名無しさん
2021/04/05(月) 09:09:31.93ID:Ir9xQslo307デフォルトの名無しさん
2021/04/05(月) 10:59:23.34ID:gsx4ZFoJ308デフォルトの名無しさん
2021/04/05(月) 11:01:51.92ID:gsx4ZFoJ 複数のタスクを指定したときにprepareを一回しか実行しないというのであれば
all関数の最初に一回だけ書いてもいいし
フラグを使って一回だけ実行するようにしてもいい(たった一行で実現可能)
動かしたい通りに書けば良い
all関数の最初に一回だけ書いてもいいし
フラグを使って一回だけ実行するようにしてもいい(たった一行で実現可能)
動かしたい通りに書けば良い
309デフォルトの名無しさん
2021/04/05(月) 11:04:18.21ID:i9PX2oQn 気持ち悪いスレだなあ
310デフォルトの名無しさん
2021/04/05(月) 11:04:54.93ID:gsx4ZFoJ leftpad事件と同じ匂いを感じててしまうな
われわれ(俺除くw)はこんな簡単なコードも書けなくなってしまったのか?
われわれ(俺除くw)はこんな簡単なコードも書けなくなってしまったのか?
311デフォルトの名無しさん
2021/04/05(月) 11:22:30.40ID:i9PX2oQn >>284
棲み分けられるか正直疑問だし、御高説垂れにくい初心者スレ的なのはどうだろうか
棲み分けられるか正直疑問だし、御高説垂れにくい初心者スレ的なのはどうだろうか
312デフォルトの名無しさん
2021/04/05(月) 11:52:33.18ID:qeGrbie0 >>308
そんなクソコードに頼らずとも使えるのがmakeなんやで!w
そんなクソコードに頼らずとも使えるのがmakeなんやで!w
313デフォルトの名無しさん
2021/04/05(月) 12:42:09.26ID:gsx4ZFoJ >>312
makeはすぐ複雑化するよ
http://quruli.ivory.ne.jp/document/make_3.79.1/make-jp_16.html
C. 複雑なMakefileの例
ここにGNU makeプログラムのmakefileがあり、それは比較的複雑なものです。
makeはすぐ複雑化するよ
http://quruli.ivory.ne.jp/document/make_3.79.1/make-jp_16.html
C. 複雑なMakefileの例
ここにGNU makeプログラムのmakefileがあり、それは比較的複雑なものです。
314デフォルトの名無しさん
2021/04/05(月) 12:43:47.04ID:gsx4ZFoJ このMakefileを見て以下の情報を読み取るのは困難
> ここでは、最初のターゲットなのでデフォルトのゴールは‘all’です。
> この makefileの興味深い特徴は、‘testpad.h’がtestpadプログラムに よって
> 自動的に作成されるソースファイルである点です。そして、その プログラム自身は‘testpad.c’のコンパイルによるものです。
> ‘make’あるいは‘make all’と入力することでmakeが実行可能な ‘tar’、
> テープアクセスを提供する‘rmt’デーモン、‘tar.info’の Infoファイルを作成します。
> ‘make install’と入力すると、‘tar’、‘rmt’、‘tar.info’の 作成だけでなく、それらのインストールも行ないます。
> ‘make clean’と入力すると、makeは‘.o’ファイル、 ‘tar’、‘rmt’、‘testpad’、
> ‘testpad.h’、そして ‘core’ファイルをすべて削除します。
> ‘make distclean’と入力すると、makeは‘make clean’と同じ 削除以外に‘TAGS’、
> ‘Makefile’、そして‘config.status’ファイルも 削除します。
> (明らかではありませんが、このmakefileと‘config.status’は configureプログラムに
> よって作成されたもので、これはtarの 配布プログラムに含まれています。しかし、ここではそれは表示されていません。)
> ‘make realclean’と入力すると、makeは‘make distclean’の ときと同じ削除を行ない、
> さらに‘tar.texinfo’から生成されたInfoファイルの 削除も行ないます。
> さらに、ここでは、配布キットを作成するためのターゲットsharと distも示されています。
> ここでは、最初のターゲットなのでデフォルトのゴールは‘all’です。
> この makefileの興味深い特徴は、‘testpad.h’がtestpadプログラムに よって
> 自動的に作成されるソースファイルである点です。そして、その プログラム自身は‘testpad.c’のコンパイルによるものです。
> ‘make’あるいは‘make all’と入力することでmakeが実行可能な ‘tar’、
> テープアクセスを提供する‘rmt’デーモン、‘tar.info’の Infoファイルを作成します。
> ‘make install’と入力すると、‘tar’、‘rmt’、‘tar.info’の 作成だけでなく、それらのインストールも行ないます。
> ‘make clean’と入力すると、makeは‘.o’ファイル、 ‘tar’、‘rmt’、‘testpad’、
> ‘testpad.h’、そして ‘core’ファイルをすべて削除します。
> ‘make distclean’と入力すると、makeは‘make clean’と同じ 削除以外に‘TAGS’、
> ‘Makefile’、そして‘config.status’ファイルも 削除します。
> (明らかではありませんが、このmakefileと‘config.status’は configureプログラムに
> よって作成されたもので、これはtarの 配布プログラムに含まれています。しかし、ここではそれは表示されていません。)
> ‘make realclean’と入力すると、makeは‘make distclean’の ときと同じ削除を行ない、
> さらに‘tar.texinfo’から生成されたInfoファイルの 削除も行ないます。
> さらに、ここでは、配布キットを作成するためのターゲットsharと distも示されています。
315デフォルトの名無しさん
2021/04/05(月) 12:52:05.95ID:4wNso/hW Makefileが複雑化するのはビルドする工程が複雑化しているという別の問題の顕在化でしかないでしょ
それと同じことができるシェルスクリプトを書くのとMakefileを書くのとどっちが簡単かって話じゃないの
それと同じことができるシェルスクリプトを書くのとMakefileを書くのとどっちが簡単かって話じゃないの
316デフォルトの名無しさん
2021/04/05(月) 13:07:34.94ID:i9PX2oQn 話題に挙がったついでだけどそこでtsortよ
ルールだけ抜き出して可視化しリファクタリングしなさい
ルールだけ抜き出して可視化しリファクタリングしなさい
317デフォルトの名無しさん
2021/04/05(月) 13:09:49.69ID:gsx4ZFoJ >>315
複雑なビルド工程をMakefileだと
・依存関係の定義として記述するのが正しいとされ、シェルスクリプトとしての柔軟性もないので
細切れのタスクが多数できてしまい、見づらくエスケープされたシェルスクリプト等を埋め込むことになる
と言ってます。
Makefileからシェルスクリプトを呼び出すんじゃなくて
シェルスクリプトから(必要な場合に必要な所だけ)makeを呼び出したほうがいいんだよ
そして大抵はmakeはいらない。多くの人がタスクランナーとして使ってるのはそういうこと
本当にmakeが必要なのは、C言語のような古い言語で、ヘッダファイルとソースファイルから
オブジェクトファイルを作ってリンクするような作業の部分だけでしょ?
つまり>>314に書いてあるタスクの殆どはmakeを使う必要がないってこと
複雑なビルド工程をMakefileだと
・依存関係の定義として記述するのが正しいとされ、シェルスクリプトとしての柔軟性もないので
細切れのタスクが多数できてしまい、見づらくエスケープされたシェルスクリプト等を埋め込むことになる
と言ってます。
Makefileからシェルスクリプトを呼び出すんじゃなくて
シェルスクリプトから(必要な場合に必要な所だけ)makeを呼び出したほうがいいんだよ
そして大抵はmakeはいらない。多くの人がタスクランナーとして使ってるのはそういうこと
本当にmakeが必要なのは、C言語のような古い言語で、ヘッダファイルとソースファイルから
オブジェクトファイルを作ってリンクするような作業の部分だけでしょ?
つまり>>314に書いてあるタスクの殆どはmakeを使う必要がないってこと
318デフォルトの名無しさん
2021/04/05(月) 13:28:19.87ID:qeGrbie0 >>317
見辛いシェルスクリプトコードならファイルにしたらええのに。w
見辛いシェルスクリプトコードならファイルにしたらええのに。w
319デフォルトの名無しさん
2021/04/05(月) 14:41:15.13ID:VlUSW8N+ そもそもシェルスクリプトでファイル間の依存関係を定義するのに疲れたから make が生まれたと思うんですけど...
あと Makefile があれば make install や make clean が存在するっていうのが分かるのがいいんだよ
プロジェクトごとにシェルスクリプトがあったらどういう引数で読んだらいいかとか分からないだろ?
あと Makefile があれば make install や make clean が存在するっていうのが分かるのがいいんだよ
プロジェクトごとにシェルスクリプトがあったらどういう引数で読んだらいいかとか分からないだろ?
320デフォルトの名無しさん
2021/04/05(月) 15:23:18.33ID:gsx4ZFoJ > そもそもシェルスクリプトでファイル間の依存関係を定義するのに疲れたから make が生まれたと思うんですけど...
そうだよ?タスクランナーではなく依存関係を定義するために作られたのがmakeだよ
最初からそう言ってるじゃん
そうだよ?タスクランナーではなく依存関係を定義するために作られたのがmakeだよ
最初からそう言ってるじゃん
321デフォルトの名無しさん
2021/04/05(月) 15:26:11.21ID:gsx4ZFoJ > プロジェクトごとにシェルスクリプトがあったらどういう引数で読んだらいいかとか分からないだろ?
俺はそれよりもmakeで実行できるタスクに何があるのかわからんのだがw
make --helpした所で表示されないしな
Makefileみればわかるって?それはソース見ればわかるって言ってるようなもんだし
依存関係を見たいんじゃなくて、makeで直接実行することを目的としたタスクの一覧が見たいんだよ
俺はそれよりもmakeで実行できるタスクに何があるのかわからんのだがw
make --helpした所で表示されないしな
Makefileみればわかるって?それはソース見ればわかるって言ってるようなもんだし
依存関係を見たいんじゃなくて、makeで直接実行することを目的としたタスクの一覧が見たいんだよ
322デフォルトの名無しさん
2021/04/05(月) 16:03:10.00ID:r6jGhjiZ323デフォルトの名無しさん
2021/04/05(月) 16:07:12.70ID:rGWHafb6324デフォルトの名無しさん
2021/04/05(月) 16:13:51.85ID:r6jGhjiZ そのレスはコーダーと呼ばれる人種っぽいレスだな
いや、普通の日本語の文もそうだが読み取る能力が欠けてるだけだな
それは矮小化した自分に都合の良い条件でしか考えられないからだな
プロジェクトwwとか関係ないよ、ソース読めないといってるのと同じだな今回は
いや、普通の日本語の文もそうだが読み取る能力が欠けてるだけだな
それは矮小化した自分に都合の良い条件でしか考えられないからだな
プロジェクトwwとか関係ないよ、ソース読めないといってるのと同じだな今回は
325デフォルトの名無しさん
2021/04/05(月) 16:14:36.43ID:rGWHafb6 そんなレスは誰も求めてないよ
326デフォルトの名無しさん
2021/04/05(月) 16:17:39.09ID:r6jGhjiZ 懲りずに
矮小化した自分に都合の良い条件
かよwそれこそ誰も求めてないぞ
矮小化した自分に都合の良い条件
かよwそれこそ誰も求めてないぞ
327デフォルトの名無しさん
2021/04/05(月) 17:28:04.19ID:qeGrbie0 >>321
ターゲットを調べたければ、sedでも使ったらすぐにわかるやん。w
ターゲットを調べたければ、sedでも使ったらすぐにわかるやん。w
328デフォルトの名無しさん
2021/04/05(月) 20:09:00.48ID:nAjTTeFT 気持ち悪い煽りだな
329デフォルトの名無しさん
2021/04/05(月) 20:33:09.06ID:Oftt9CcS ルビキチ臭
330デフォルトの名無しさん
2021/04/05(月) 21:07:57.60ID:rGWHafb6 >>327
ターゲットじゃなくてタスクを見たいんだってw
例えばシェルスクリプトなら--helpして分かりやすいusageが
表示されるように作るだろ?
sedではそのわかりやすさがない。頑張れば作れるだろうが
Makefileでそんなのが用意されてるのみたことないよ
ターゲットじゃなくてタスクを見たいんだってw
例えばシェルスクリプトなら--helpして分かりやすいusageが
表示されるように作るだろ?
sedではそのわかりやすさがない。頑張れば作れるだろうが
Makefileでそんなのが用意されてるのみたことないよ
331252
2021/04/05(月) 21:19:53.87ID:2g7RifS+ Ruby のタスクランナー、Rake, Thor などでは調べるのも簡単
thor list,
thor タスク名
などで、タスクを表示できる
タスク定義の仕方も決まっているので、保守しやすい。
シェルスクリプトでは、各人で書き方を変えるから、保守できない
thor list,
thor タスク名
などで、タスクを表示できる
タスク定義の仕方も決まっているので、保守しやすい。
シェルスクリプトでは、各人で書き方を変えるから、保守できない
332デフォルトの名無しさん
2021/04/05(月) 21:21:58.48ID:VlUSW8N+ こいつがまともなレスしてるの初めて見たぞ... 明日も雨か?
333デフォルトの名無しさん
2021/04/05(月) 21:22:55.94ID:qeGrbie0334デフォルトの名無しさん
2021/04/05(月) 22:30:31.71ID:Oftt9CcS あいつは何を言いたい何をしたいんだかな
何をしたいのかは「勝ちたい/負けたなくない」wwなのは明白だったか
何をしたいのかは「勝ちたい/負けたなくない」wwなのは明白だったか
335デフォルトの名無しさん
2021/04/05(月) 22:47:11.83ID:rGWHafb6336デフォルトの名無しさん
2021/04/05(月) 22:48:23.80ID:rGWHafb6337デフォルトの名無しさん
2021/04/05(月) 22:56:26.91ID:Oftt9CcS だから結局そうなるってwこいつの頭の中身はどうなってんだよ、ほんとに
利点を争ってるwのはそこじゃないだろうにな
「勝ちたい/負けたなくない」wwすぎて誤魔化しがカオス
利点を争ってるwのはそこじゃないだろうにな
「勝ちたい/負けたなくない」wwすぎて誤魔化しがカオス
338デフォルトの名無しさん
2021/04/05(月) 22:59:22.09ID:Oftt9CcS まあ、チャンピオンはこうだからチャンピオンなわけで、誰も勝てないわな
さすがチャンピオン
適当に諦めて試合放棄してもいいよ、挑戦者
さすがチャンピオン
適当に諦めて試合放棄してもいいよ、挑戦者
339デフォルトの名無しさん
2021/04/05(月) 23:00:22.41ID:rGWHafb6 それなら勝ち負けじゃなくてmakeの利点・欠点の話をすればいいじゃん
俺はずっとmakeの話をしてるんだが、お前は俺の話しかしてないじゃん
俺はずっとmakeの話をしてるんだが、お前は俺の話しかしてないじゃん
340デフォルトの名無しさん
2021/04/05(月) 23:02:35.31ID:rGWHafb6 もちろんシェルスクリプトのスレだから
makeよりもシェルスクリプトの方が良いっていう話ね
あと今更言わなくてもわかると思うけど、タスクランナーとして使う場合
makeよりもシェルスクリプトの方が良いっていう話ね
あと今更言わなくてもわかると思うけど、タスクランナーとして使う場合
341デフォルトの名無しさん
2021/04/05(月) 23:03:21.85ID:Oftt9CcS お前に無駄な挑戦はしないww観客がヤジるくらい許せよ、チャンピオンなんだから
てか「勝ちたい/負けたなくない」wwはお前だけだぞ、言っておくが
すんなり「それなら勝ち負けじゃなくて」って言葉出るのな、さすがチャンピオン
てか「勝ちたい/負けたなくない」wwはお前だけだぞ、言っておくが
すんなり「それなら勝ち負けじゃなくて」って言葉出るのな、さすがチャンピオン
342デフォルトの名無しさん
2021/04/05(月) 23:03:56.47ID:VlUSW8N+ タスクランナーとして使う場合の話だったのか、それなら好きなのを使えばいいよ...
343デフォルトの名無しさん
2021/04/05(月) 23:20:17.04ID:i9PX2oQn ほんそれ
原理主義者ってこえーわ
原理主義者ってこえーわ
344デフォルトの名無しさん
2021/04/05(月) 23:23:23.69ID:rGWHafb6345デフォルトの名無しさん
2021/04/05(月) 23:26:14.86ID:Oftt9CcS >>344
>自覚してないと思うんだけど、お前のそのレス、またシェルスクリプトの話にはなってない
お前自体が逸脱することしょっちゅうあるくせに
昔からなんか困ったらw(黙らせたいとかw)そう言うよなってしか感じませんよ
>自覚してないと思うんだけど、お前のそのレス、またシェルスクリプトの話にはなってない
お前自体が逸脱することしょっちゅうあるくせに
昔からなんか困ったらw(黙らせたいとかw)そう言うよなってしか感じませんよ
346デフォルトの名無しさん
2021/04/05(月) 23:37:33.37ID:rGWHafb6 な?またシェルスクリプトの話題が入ってないやろ?そういうとこやで
347デフォルトの名無しさん
2021/04/05(月) 23:44:04.08ID:Oftt9CcS >>342は「好きなのを使えばいい」だろう
なのにチャンピオンは「最初にそう書いてるんだが」って書いておいての次の2行
そういうのは「好きなのを使えばいい」とは言わないだろう
>>342はどっちでもいい、どちらに優位とかは本人次第での「好きなのを使えばいい」だろうと思われるが
だったら、チャンピオンらしいさすがカオスな世界観
未だにMakefileの利点と挙げられてるがのがわかってないなって感じ
簡単に言うと定型フォーマットでルールを記述、オレオレロジック書く必要もないてとこかと思うんだけど、言ってるのは
何故全く理解できないのかなんだか不思議でたまらないカオスな世界
>>346
>>345
な?同じことを平気で何故か言えるだろ?
なのにチャンピオンは「最初にそう書いてるんだが」って書いておいての次の2行
そういうのは「好きなのを使えばいい」とは言わないだろう
>>342はどっちでもいい、どちらに優位とかは本人次第での「好きなのを使えばいい」だろうと思われるが
だったら、チャンピオンらしいさすがカオスな世界観
未だにMakefileの利点と挙げられてるがのがわかってないなって感じ
簡単に言うと定型フォーマットでルールを記述、オレオレロジック書く必要もないてとこかと思うんだけど、言ってるのは
何故全く理解できないのかなんだか不思議でたまらないカオスな世界
>>346
>>345
な?同じことを平気で何故か言えるだろ?
348デフォルトの名無しさん
2021/04/06(火) 00:33:09.03ID:+n99AGjS > なのにチャンピオンは「最初にそう書いてるんだが」って書いておいての次の2行
> そういうのは「好きなのを使えばいい」とは言わないだろう
補足しておくな
最初に【タスクランナーの話だと】そう書いてる
そして【タスクランナーの話だと】シェルスクリプトの方が良いと最初に書いてる
何の話なのかをあやふやにして、
他人が言ったことをすり替えようとするのは
お前がよく使う手だ。(何度も指摘されてるだろ?)
> そういうのは「好きなのを使えばいい」とは言わないだろう
補足しておくな
最初に【タスクランナーの話だと】そう書いてる
そして【タスクランナーの話だと】シェルスクリプトの方が良いと最初に書いてる
何の話なのかをあやふやにして、
他人が言ったことをすり替えようとするのは
お前がよく使う手だ。(何度も指摘されてるだろ?)
349デフォルトの名無しさん
2021/04/06(火) 00:34:38.03ID:+n99AGjS タスクランナーはシェルスクリプトが良いと最初に言ってるのに
なんで好きなものを使えばいいという話につながるのかわからん
最初から「好きなものを使えばいい」とは言ってないだろう
文章を読めないのか、話をすり替えるのが目的なのか
なんで好きなものを使えばいいという話につながるのかわからん
最初から「好きなものを使えばいい」とは言ってないだろう
文章を読めないのか、話をすり替えるのが目的なのか
350デフォルトの名無しさん
2021/04/06(火) 00:39:08.04ID:+n99AGjS タスクランナーとして使う場合、依存しているファイルがないので
Makefileで使える部分は
task:
↑これだけなんだよ
そしてtaskの中身は、コマンドを羅列するか
シェルスクリプトを"エスケープして"埋め込むことだけ
task: であれば
task() { と書いても数文字増える程度で大差なく、
一番重要なタスクの処理は、
task() {
ここにコマンドやシェルスクリプトを
エスケープせずにそのまま書けるというメリットが有る
}
もちろん task 関数を書いただけじゃ呼び出せないから
それをシェルスクリプトでは呼び出すコードが必要
あー、それがオレオレロジックなんだーって言うかもしれないが
それは>>287に書いた通り
# お前に必要なmakeコマンドの実装
for target; do "$target"; done
たったこれだけ
Makefileで使える部分は
task:
↑これだけなんだよ
そしてtaskの中身は、コマンドを羅列するか
シェルスクリプトを"エスケープして"埋め込むことだけ
task: であれば
task() { と書いても数文字増える程度で大差なく、
一番重要なタスクの処理は、
task() {
ここにコマンドやシェルスクリプトを
エスケープせずにそのまま書けるというメリットが有る
}
もちろん task 関数を書いただけじゃ呼び出せないから
それをシェルスクリプトでは呼び出すコードが必要
あー、それがオレオレロジックなんだーって言うかもしれないが
それは>>287に書いた通り
# お前に必要なmakeコマンドの実装
for target; do "$target"; done
たったこれだけ
351デフォルトの名無しさん
2021/04/06(火) 00:53:19.81ID:WV1MWJne >>348,349
単に「タスクランナーとして使う場合の話だったのか」の部分だけを言っているのか
そして「それなら好きなのを使えばいいよ」はあくまでも否定してる文のつもりかよ
あんな短文を分けて肯定否定してるなんて、わかりづらいわっ
まあ、そこまで読めなかったのは俺にも責はあるけどな
(何で食いついてるのかと思ったら何となく理解した。アレだからだろな、やっぱ)
だから、シェルスクリプトがいい/Makefile使うなwと言ってるのはお前だけだって。他に誰もいないだろう(せいぜい好きなの使えばいいというのだろう、他のも勧めてるのも居るしなw)
そしてシェルスクリプトがいいと言ってる理由がことごとくアレwされてるだろうに、自覚ないようだけど。そういうとこやで(ww)
あとな、シェルスクリプトの話を「してほしい」wなら、
少しはその自分のカオスな世界観wを他人にもわかるぐらいに直しないさいな
まあ「してほしい」wんじゃなくて黙らせたいだけなんだろけど、自ら行ってもいるんだからな
変わらないんだろうから、お前のルールなんて知らんとだけ言っておく
単に「タスクランナーとして使う場合の話だったのか」の部分だけを言っているのか
そして「それなら好きなのを使えばいいよ」はあくまでも否定してる文のつもりかよ
あんな短文を分けて肯定否定してるなんて、わかりづらいわっ
まあ、そこまで読めなかったのは俺にも責はあるけどな
(何で食いついてるのかと思ったら何となく理解した。アレだからだろな、やっぱ)
だから、シェルスクリプトがいい/Makefile使うなwと言ってるのはお前だけだって。他に誰もいないだろう(せいぜい好きなの使えばいいというのだろう、他のも勧めてるのも居るしなw)
そしてシェルスクリプトがいいと言ってる理由がことごとくアレwされてるだろうに、自覚ないようだけど。そういうとこやで(ww)
あとな、シェルスクリプトの話を「してほしい」wなら、
少しはその自分のカオスな世界観wを他人にもわかるぐらいに直しないさいな
まあ「してほしい」wんじゃなくて黙らせたいだけなんだろけど、自ら行ってもいるんだからな
変わらないんだろうから、お前のルールなんて知らんとだけ言っておく
352デフォルトの名無しさん
2021/04/06(火) 00:53:50.60ID:WV1MWJne (まだやってる。懲りないやつだな)
353デフォルトの名無しさん
2021/04/06(火) 00:55:43.56ID:+n99AGjS > そして「それなら好きなのを使えばいいよ」はあくまでも否定してる文のつもりかよ
知らねーよ。俺が言ったセリフじゃないんだから
言ったやつに言えよ
俺は、タスクランナーとして使う場合は
シェルスクリプトの方がいいとしか言ってない
誰が言ったかを理解してないのか?
それともわざとあやふやにして
全部俺のせいにしようとしてるのかどっちだ?
知らねーよ。俺が言ったセリフじゃないんだから
言ったやつに言えよ
俺は、タスクランナーとして使う場合は
シェルスクリプトの方がいいとしか言ってない
誰が言ったかを理解してないのか?
それともわざとあやふやにして
全部俺のせいにしようとしてるのかどっちだ?
354デフォルトの名無しさん
2021/04/06(火) 00:56:56.22ID:+n99AGjS > だから、シェルスクリプトがいい/Makefile使うなwと言ってるのはお前だけだって。
だからなんなんだろう?
技術の話をせーや
俺はシェルスクリプトの話をして、シェルスクリプトの方が優れてると言ってる
お前の反論は、そんなこと言ってるのはお前だ!で
技術的な話が全く入ってない
だからなんなんだろう?
技術の話をせーや
俺はシェルスクリプトの話をして、シェルスクリプトの方が優れてると言ってる
お前の反論は、そんなこと言ってるのはお前だ!で
技術的な話が全く入ってない
355デフォルトの名無しさん
2021/04/06(火) 01:05:48.82ID:WV1MWJne > そして「それなら好きなのを使えばいいよ」はあくまでも否定してる文のつもりかよ
そして「それなら好きなのを使えばいいよ」に対しては あくまでも否定してる文のつもりかよ
だよ。そう読んだか。わかると思うんだがなあ、まあ、なんかすまん
>あんな短文を分けて肯定否定してるなんて、わかりづらい
文を書いたのはお前な、お前の責もあるのは当然だろう。元文を書いた人は何にも関係ないぞ、関係ないのは明らかだろうに、あんなわかりやすいw文
そして「それなら好きなのを使えばいいよ」に対しては あくまでも否定してる文のつもりかよ
だよ。そう読んだか。わかると思うんだがなあ、まあ、なんかすまん
>あんな短文を分けて肯定否定してるなんて、わかりづらい
文を書いたのはお前な、お前の責もあるのは当然だろう。元文を書いた人は何にも関係ないぞ、関係ないのは明らかだろうに、あんなわかりやすいw文
356デフォルトの名無しさん
2021/04/06(火) 01:07:35.33ID:WV1MWJne >>351の中と後半に書いてる
わかってないなら、中と後半、そして最後の一文を繰り返すだけだな
わかってないなら、中と後半、そして最後の一文を繰り返すだけだな
357デフォルトの名無しさん
2021/04/06(火) 01:08:02.78ID:+n99AGjS × そして「それなら好きなのを使えばいいよ」はあくまでも否定してる文のつもりかよ
○ そして「それなら好きなのを使えばいいよ」に対しては あくまでも否定してる文のつもりかよ
↑文を書いたのはお前だろw
まず自分の責任を認めろ
○ そして「それなら好きなのを使えばいいよ」に対しては あくまでも否定してる文のつもりかよ
↑文を書いたのはお前だろw
まず自分の責任を認めろ
358デフォルトの名無しさん
2021/04/06(火) 01:09:30.57ID:+n99AGjS359デフォルトの名無しさん
2021/04/06(火) 01:11:42.44ID:WV1MWJne >そう読んだか。わかると思うんだがなあ、まあ、なんかすまん
わざわざ×○整形してるくせに、次のは読まないんだな
チャンピオンとしては受け取れないのか...w
>>358
すでにされてることを何で繰り返さなければならないのか
お前のルールなんて知らんwオレオレルール押し付けすぎだろう
わざわざ×○整形してるくせに、次のは読まないんだな
チャンピオンとしては受け取れないのか...w
>>358
すでにされてることを何で繰り返さなければならないのか
お前のルールなんて知らんwオレオレルール押し付けすぎだろう
360デフォルトの名無しさん
2021/04/06(火) 01:12:56.30ID:+n99AGjS シェルスクリプトかMakefileのコードは?
361デフォルトの名無しさん
2021/04/06(火) 01:13:32.15ID:+n99AGjS 反論がないからもう一度書くね
タスクランナーとして使う場合、依存しているファイルがないので
Makefileで使える部分は
task:
↑これだけなんだよ
そしてtaskの中身は、コマンドを羅列するか
シェルスクリプトを"エスケープして"埋め込むことだけ
task: であれば
task() { と書いても数文字増える程度で大差なく、
一番重要なタスクの処理は、
task() {
ここにコマンドやシェルスクリプトを
エスケープせずにそのまま書けるというメリットが有る
}
もちろん task 関数を書いただけじゃ呼び出せないから
それをシェルスクリプトでは呼び出すコードが必要
あー、それがオレオレロジックなんだーって言うかもしれないが
それは>>287に書いた通り
# お前に必要なmakeコマンドの実装
for target; do "$target"; done
たったこれだけ
タスクランナーとして使う場合、依存しているファイルがないので
Makefileで使える部分は
task:
↑これだけなんだよ
そしてtaskの中身は、コマンドを羅列するか
シェルスクリプトを"エスケープして"埋め込むことだけ
task: であれば
task() { と書いても数文字増える程度で大差なく、
一番重要なタスクの処理は、
task() {
ここにコマンドやシェルスクリプトを
エスケープせずにそのまま書けるというメリットが有る
}
もちろん task 関数を書いただけじゃ呼び出せないから
それをシェルスクリプトでは呼び出すコードが必要
あー、それがオレオレロジックなんだーって言うかもしれないが
それは>>287に書いた通り
# お前に必要なmakeコマンドの実装
for target; do "$target"; done
たったこれだけ
362デフォルトの名無しさん
2021/04/06(火) 01:16:39.85ID:WV1MWJne カオス化がまた一層酷くになったwので、>>351の最後を繰り返すだけだぞ
続けて欲しい、技術的な話をしたいwだったら変わってみような
(そういえばチャンピオンのもう一つの武器は繰り返し言い張るだな
俺の繰り返し言い張りwも受けてみてほしいものだw)
続けて欲しい、技術的な話をしたいwだったら変わってみような
(そういえばチャンピオンのもう一つの武器は繰り返し言い張るだな
俺の繰り返し言い張りwも受けてみてほしいものだw)
363デフォルトの名無しさん
2021/04/06(火) 01:18:01.12ID:+n99AGjS >>361に何一つコメントできないくせにレスだけはするんだよな
自覚したほうがいいよ
自覚したほうがいいよ
364デフォルトの名無しさん
2021/04/06(火) 01:21:16.72ID:WV1MWJne 「しない」という選択肢もあるんだよ。自覚も何も「わざと」なw
だから、そのカオスの原因を直しなさいよ、「してほしい」wなら
だから、そのカオスの原因を直しなさいよ、「してほしい」wなら
365デフォルトの名無しさん
2021/04/06(火) 01:32:38.75ID:TYYwd7pV366デフォルトの名無しさん
2021/04/06(火) 01:37:47.42ID:TYYwd7pV >>361
前にあったprepareタスクのような、フローの合理化が、シェルスクリプトでは面倒。
&でbg処理したらええというもんではない。そもそも、並列実行していいかどうかも未定義やし。
まあ、それがプログラムとしてはふつうなんやけど、makeに比べると、makefileがルールとして記述するだけやから、そりゃあかなわんわなあ。w
前にあったprepareタスクのような、フローの合理化が、シェルスクリプトでは面倒。
&でbg処理したらええというもんではない。そもそも、並列実行していいかどうかも未定義やし。
まあ、それがプログラムとしてはふつうなんやけど、makeに比べると、makefileがルールとして記述するだけやから、そりゃあかなわんわなあ。w
367デフォルトの名無しさん
2021/04/06(火) 01:39:22.54ID:bGyEcdYQ 億倍ww
シレっと煽るねえ(もしくはウィット入れるねえ)
だが、チャンピオンには通じないぞ、マジでそう受け取るぞw
シレっと煽るねえ(もしくはウィット入れるねえ)
だが、チャンピオンには通じないぞ、マジでそう受け取るぞw
368デフォルトの名無しさん
2021/04/06(火) 02:36:53.08ID:Zjnr+Ca7 >>316
gnuのtsortは-fで視点グリグリできないからあかんね、珍しくBSDの方が便利なコマンド
gnuのtsortは-fで視点グリグリできないからあかんね、珍しくBSDの方が便利なコマンド
369デフォルトの名無しさん
2021/04/06(火) 05:35:04.17ID:MTiaA6bM >>365
> シェルスクリプトでコマンドライン引数処理をするよりも、makefileにhelpターゲットを追加するほうが億倍ラクやで?
億倍ラクになるかやってみたら?
じゃあmake.sh版。makefile版よろしくw
#!/bin/sh
target1() { # ターゲット1
echo "target1"
}
help() { # ヘルプ表示
sed -n 's/('') {//p' "$0"
}
for target; do "$target"; done
$ ./make.sh help
target1 # ターゲット1
help # ヘルプ表示
(やる前から同じように書けるはずだって気づかないもんですかねぇ)
> シェルスクリプトでコマンドライン引数処理をするよりも、makefileにhelpターゲットを追加するほうが億倍ラクやで?
億倍ラクになるかやってみたら?
じゃあmake.sh版。makefile版よろしくw
#!/bin/sh
target1() { # ターゲット1
echo "target1"
}
help() { # ヘルプ表示
sed -n 's/('') {//p' "$0"
}
for target; do "$target"; done
$ ./make.sh help
target1 # ターゲット1
help # ヘルプ表示
(やる前から同じように書けるはずだって気づかないもんですかねぇ)
370デフォルトの名無しさん
2021/04/06(火) 05:40:09.71ID:MTiaA6bM >>366
> 前にあったprepareタスクのような、フローの合理化が、シェルスクリプトでは面倒。
何が面倒かが書いてない
> &でbg処理したらええというもんではない。
ええというもんではない当理由が書いてない
> そもそも、並列実行していいかどうかも未定義やし。
それはmakeも同じ。makeの並列実行に夢見すぎじゃね?w
Does “make -j” always produce correct result?
https://stackoverflow.com/questions/45453225/does-make-j-always-produce-correct-result
> 依存関係が正しく設定されていないと、間違った順序で処理が行われ、
> ビルドエラーが発生する可能性があります。make通常、複数回実行すると解決します。
> ただし、最善の解決策は、依存関係をリファクタリングすることです。
> それが不可能な場合は、最初から並列makeを実行しないでください。
> 私は古いgccベースのコンパイラ(?1997)を使用していますが、-j2以上でビルドすると、
> スレッドセーフではないかのようにエラーが発生します。
Installation using "make -j" error
https://github.com/espnet/espnet/issues/392
error when run "make -j 12"
https://github.com/google/ihmehimmeli/issues/2
> 前にあったprepareタスクのような、フローの合理化が、シェルスクリプトでは面倒。
何が面倒かが書いてない
> &でbg処理したらええというもんではない。
ええというもんではない当理由が書いてない
> そもそも、並列実行していいかどうかも未定義やし。
それはmakeも同じ。makeの並列実行に夢見すぎじゃね?w
Does “make -j” always produce correct result?
https://stackoverflow.com/questions/45453225/does-make-j-always-produce-correct-result
> 依存関係が正しく設定されていないと、間違った順序で処理が行われ、
> ビルドエラーが発生する可能性があります。make通常、複数回実行すると解決します。
> ただし、最善の解決策は、依存関係をリファクタリングすることです。
> それが不可能な場合は、最初から並列makeを実行しないでください。
> 私は古いgccベースのコンパイラ(?1997)を使用していますが、-j2以上でビルドすると、
> スレッドセーフではないかのようにエラーが発生します。
Installation using "make -j" error
https://github.com/espnet/espnet/issues/392
error when run "make -j 12"
https://github.com/google/ihmehimmeli/issues/2
371デフォルトの名無しさん
2021/04/06(火) 05:42:39.64ID:MTiaA6bM372デフォルトの名無しさん
2021/04/06(火) 07:06:03.54ID:dc8Xc+ex >例えばシェルスクリプトなら--helpして分かりやすいusageが
--helpじゃないのか
シェルスクリプトに拘ってるのにスタイルは簡単に捨てるのか
make help
は、それもスタイルだからな。何でもアリなら、何でもアリでええやん
--helpじゃないのか
シェルスクリプトに拘ってるのにスタイルは簡単に捨てるのか
make help
は、それもスタイルだからな。何でもアリなら、何でもアリでええやん
373デフォルトの名無しさん
2021/04/06(火) 07:18:08.96ID:MTiaA6bM こう変えるだけで変更できる簡単なツッコミはいらんて
for target; do "${target#--}"; done
for target; do "${target#--}"; done
374デフォルトの名無しさん
2021/04/06(火) 07:34:25.05ID:dc8Xc+ex 言われたら対応してるだけだな
--target1
は、許すんだな。まさかそんな小手先で来ると思わなかったぞw
何でもアリに変わりないやん
--target1
は、許すんだな。まさかそんな小手先で来ると思わなかったぞw
何でもアリに変わりないやん
375デフォルトの名無しさん
2021/04/06(火) 07:48:24.00ID:dc8Xc+ex 自分の目的なら色々自分スタイルでいいと自ら自己紹介してるのに、他の人がするのは絶対許さないというカオスぶり(というより単に自己中かw)
やっぱりカオスだな、技術的なことwは無駄だなと思わせるだけだなっていう
やっぱりカオスだな、技術的なことwは無駄だなと思わせるだけだなっていう
376デフォルトの名無しさん
2021/04/06(火) 08:23:20.52ID:MTiaA6bM お前単に自分が気に食わないって言ってるだけじゃんw
377デフォルトの名無しさん
2021/04/06(火) 08:38:17.44ID:dc8Xc+ex 「一貫性のないのや何もわかってない理解してなさそうなのに」偉そうに振る舞うのに「一貫性のないのや何もわかってない理解してなさそうなのに」部分にヤジ入れてる感想入れてるwだけだな
自分が気に食わないってしか捉えられないお前の思考が浅い(すぐ上のでも顕著なようにw全てに言える)だけだな
まあ単にそう貶めたいだけなんだろうけど、チャンピオンとしては
自分が気に食わないってしか捉えられないお前の思考が浅い(すぐ上のでも顕著なようにw全てに言える)だけだな
まあ単にそう貶めたいだけなんだろうけど、チャンピオンとしては
378デフォルトの名無しさん
2021/04/06(火) 08:41:47.63ID:MTiaA6bM 一貫性がないとかいう主張の中身が、お前が気にいるかどうかでしかない
例えば、git helpでgit --helpと同じヘルプが表示される
例えば、git helpでgit --helpと同じヘルプが表示される
379デフォルトの名無しさん
2021/04/06(火) 08:47:35.34ID:dc8Xc+ex --helpってお前が言い出してるんだけどな
--helptってお前自身そう思ってたくせに
そういう一貫性だよ、お前自身のな
ちなみに、git helpのはhelpが「gitのコマンド」だからだぞ
なんか残念でしたwと思わないこともない
--helptってお前自身そう思ってたくせに
そういう一貫性だよ、お前自身のな
ちなみに、git helpのはhelpが「gitのコマンド」だからだぞ
なんか残念でしたwと思わないこともない
380デフォルトの名無しさん
2021/04/06(火) 08:48:45.39ID:MTiaA6bM docker helpやgcloudもだな。
サブコマンド系は--helpがhelpサブコマンドになってるのはよくありそう
(実装者の立場で考えるとそれが合理的なのは理解できる)
サブコマンド系は--helpがhelpサブコマンドになってるのはよくありそう
(実装者の立場で考えるとそれが合理的なのは理解できる)
381デフォルトの名無しさん
2021/04/06(火) 08:50:17.32ID:MTiaA6bM382デフォルトの名無しさん
2021/04/06(火) 08:51:43.12ID:MTiaA6bM383デフォルトの名無しさん
2021/04/06(火) 08:53:36.32ID:dc8Xc+ex なんか一生懸命探してんな、今更
なんか一生懸命辻褄あわせしようとしてる感じでしかないなあ。いつものw
戦うwwwさすがチャンピオン。>>377って言ってるのに、いつも戦ってるチャンピオンは、ホントにもうw
なんか一生懸命辻褄あわせしようとしてる感じでしかないなあ。いつものw
戦うwwwさすがチャンピオン。>>377って言ってるのに、いつも戦ってるチャンピオンは、ホントにもうw
384デフォルトの名無しさん
2021/04/06(火) 08:55:42.05ID:dc8Xc+ex (短時間、連投来たなあ。さすがいつも戦ってるチャンピオンw)
385デフォルトの名無しさん
2021/04/06(火) 08:58:18.00ID:MTiaA6bM やはりレスの相手はコードではなく俺
386デフォルトの名無しさん
2021/04/06(火) 09:04:16.76ID:dc8Xc+ex387デフォルトの名無しさん
2021/04/06(火) 09:10:08.38ID:MTiaA6bM それでコードに問題あるの?問題ないの?
その解決策は自分で思いつけないの?
いいからコードの話をしなよw
その解決策は自分で思いつけないの?
いいからコードの話をしなよw
388デフォルトの名無しさん
2021/04/06(火) 09:10:59.23ID:dc8Xc+ex そう言うお前は問題ないと思ってるの?
389デフォルトの名無しさん
2021/04/06(火) 09:13:34.38ID:MTiaA6bM 質問に質問で返すな
390デフォルトの名無しさん
2021/04/06(火) 09:18:50.92ID:MTiaA6bM 質問に質問で返す人の心理について
https://mental-kyoka.com/archives/6137
> しかし、聞かれたくない事を聞かれている不快感を放置することができず、
> 婉曲的ではありますが質問に質問で返すという行為により
> 「その質問の内容は不愉快だからやめてくれない?」と暗に
> 伝えているのだと考えることもできます。
> いわば、「逆ギレ」の一種と表現するのが適当かもしれません。
> また、後述するように逆に質問する行為がうまく行き、
> 会話の主導権を自分が握ることができれば、
> 今度は自分が相手に質問責めをして、今まで受けてきた
> 質問に対する鬱憤を晴らすことも可能です。
なるほど
https://mental-kyoka.com/archives/6137
> しかし、聞かれたくない事を聞かれている不快感を放置することができず、
> 婉曲的ではありますが質問に質問で返すという行為により
> 「その質問の内容は不愉快だからやめてくれない?」と暗に
> 伝えているのだと考えることもできます。
> いわば、「逆ギレ」の一種と表現するのが適当かもしれません。
> また、後述するように逆に質問する行為がうまく行き、
> 会話の主導権を自分が握ることができれば、
> 今度は自分が相手に質問責めをして、今まで受けてきた
> 質問に対する鬱憤を晴らすことも可能です。
なるほど
391デフォルトの名無しさん
2021/04/06(火) 09:19:45.59ID:dc8Xc+ex ここ大事だから。お前から聞いてきたんだから、お前が自ら答える責もあるだろう
ホント、自分は例外だな。いつものことだが
もちろんお前(に限らず)がそうしようがお前の勝手だから問題だとは思わんよ
他人のやり方にアレコレダメ出しするお前はどう答えるのか当然先に聴きたくなるのは当たり前じゃん
馬鹿な墓穴掘り質問だから尚更wいつもの浅知恵レスだから尚更尚更、質問したくなるじゃん
ホント、自分は例外だな。いつものことだが
もちろんお前(に限らず)がそうしようがお前の勝手だから問題だとは思わんよ
他人のやり方にアレコレダメ出しするお前はどう答えるのか当然先に聴きたくなるのは当たり前じゃん
馬鹿な墓穴掘り質問だから尚更wいつもの浅知恵レスだから尚更尚更、質問したくなるじゃん
392デフォルトの名無しさん
2021/04/06(火) 09:20:32.67ID:dc8Xc+ex (また変な浅知恵、何とか貶めたいだけwのをわざわざ探してきてんな)
393デフォルトの名無しさん
2021/04/06(火) 09:20:36.35ID:MTiaA6bM あ、ごめん。先に「質問に質問で返す人の心理について」について読んじゃったw
394デフォルトの名無しさん
2021/04/06(火) 09:20:55.48ID:MTiaA6bM ではもう一回聞くね
それでコードに問題あるの?問題ないの?
その解決策は自分で思いつけないの?
いいからコードの話をしなよw
それでコードに問題あるの?問題ないの?
その解決策は自分で思いつけないの?
いいからコードの話をしなよw
395デフォルトの名無しさん
2021/04/06(火) 09:21:53.66ID:dc8Xc+ex 戦うチャンピオン、スカってるぞ。頑張れw
396デフォルトの名無しさん
2021/04/06(火) 09:23:49.17ID:MTiaA6bM ※ コードの話をしろよといった次のレスがやはり俺の話
397デフォルトの名無しさん
2021/04/06(火) 09:25:00.64ID:dc8Xc+ex え?答えないの?ww
また何度も繰り返す、困った時のフレーズですか?
また何度も繰り返す、困った時のフレーズですか?
398デフォルトの名無しさん
2021/04/06(火) 09:28:37.03ID:MTiaA6bM コードに問題はないよ
で、お前はコードに問題あると思ってるの?問題ないと思ってるの?
その解決策は自分で思いつけないの?
いいからコードの話をしなよw
俺はもう答えたからねw
で、お前はコードに問題あると思ってるの?問題ないと思ってるの?
その解決策は自分で思いつけないの?
いいからコードの話をしなよw
俺はもう答えたからねw
399デフォルトの名無しさん
2021/04/06(火) 09:31:53.66ID:dc8Xc+ex 答えてるんですけど
お前が戦う姿勢なのはいいが、ちゃんと読んでくれなきゃ、ずっこけるだけですよw
コードに問題なければいいなら、Makefileで問題なければいいってことになるだろうに
自分だけは例外は許されへんな
お前が戦う姿勢なのはいいが、ちゃんと読んでくれなきゃ、ずっこけるだけですよw
コードに問題なければいいなら、Makefileで問題なければいいってことになるだろうに
自分だけは例外は許されへんな
400デフォルトの名無しさん
2021/04/06(火) 09:33:48.52ID:MTiaA6bM > 答えてるんですけど
次のレスは、どのレスで答えてるかを書くだけでいいよ
次のレスは、どのレスで答えてるかを書くだけでいいよ
401デフォルトの名無しさん
2021/04/06(火) 09:34:52.15ID:dc8Xc+ex402デフォルトの名無しさん
2021/04/06(火) 09:34:55.28ID:MTiaA6bM まだ?
403デフォルトの名無しさん
2021/04/06(火) 09:35:55.88ID:MTiaA6bM404デフォルトの名無しさん
2021/04/06(火) 09:36:46.41ID:MTiaA6bM コードに問題がないなら>>369のmake.shでいいじゃんなw
405デフォルトの名無しさん
2021/04/06(火) 09:37:44.50ID:MTiaA6bM コードに問題がある or 問題がない・・・これはコードの問題
お前がそれでいいと思うならそうなんだろうな・・・これはコードではなく俺の話
お前がそれでいいと思うならそうなんだろうな・・・これはコードではなく俺の話
406デフォルトの名無しさん
2021/04/06(火) 09:38:03.38ID:MTiaA6bM 訂正
コードに問題がある or 問題がない・・・これはコードの話
お前がそれでいいと思うならそうなんだろうな・・・これはコードではなく俺の話
コードに問題がある or 問題がない・・・これはコードの話
お前がそれでいいと思うならそうなんだろうな・・・これはコードではなく俺の話
407デフォルトの名無しさん
2021/04/06(火) 09:43:24.15ID:dc8Xc+ex 変な浅知恵でサイト探してからおかしいぞ
大丈夫か?w
クールダウンタイム必要か?
お前が、コードに「問題あるの?問題ないの?」のって聞いてきてるんだから、「問題だとは思わん」が答えになってるだろうに
何をおっしゃってるんですか。マジ大丈夫ですか?
「お前が」「他人のに」「ダメ出ししてるのが」アホみたいなながーいやり取りになる(俺だけではないのは上の方でも)主要因なのに、(Makefileでの利点をいまだに理解しようとしないのは置いておいても)何を自分ので問題ないでしょなんておっしゃってるんですか
カオスw
大丈夫か?w
クールダウンタイム必要か?
お前が、コードに「問題あるの?問題ないの?」のって聞いてきてるんだから、「問題だとは思わん」が答えになってるだろうに
何をおっしゃってるんですか。マジ大丈夫ですか?
「お前が」「他人のに」「ダメ出ししてるのが」アホみたいなながーいやり取りになる(俺だけではないのは上の方でも)主要因なのに、(Makefileでの利点をいまだに理解しようとしないのは置いておいても)何を自分ので問題ないでしょなんておっしゃってるんですか
カオスw
408デフォルトの名無しさん
2021/04/06(火) 09:44:08.56ID:7tHYoHIo (戦うチャンピオンwww)
409デフォルトの名無しさん
2021/04/06(火) 09:45:42.68ID:MTiaA6bM410デフォルトの名無しさん
2021/04/06(火) 09:49:39.74ID:MTiaA6bM Makefileでの利点はタスクランナーじゃなくて
依存ファイルに基づいて何かを処理するのが得意ってことだよ
タスクランナーとしてならシェルスクリプトの方が得意だって最初に言ったじゃん
依存ファイルに基づいて何かを処理するのが得意ってことだよ
タスクランナーとしてならシェルスクリプトの方が得意だって最初に言ったじゃん
411デフォルトの名無しさん
2021/04/06(火) 09:49:55.09ID:7tHYoHIo なに自分だけに都合が良いように誘導しようとしてんだか
そういう見え透いたのは、ホントにもうw浅知恵好きすぎだろう
矮小化した自分に都合に良いというちょっとナツいフレーズ
てか、結論は出てるだろう、なんか必死で逃げようとはしてるけど
コードに問題なければいいなら、Makefileで問題なければいいってこと
で終わること、とっくに終わってることだよ
そういう見え透いたのは、ホントにもうw浅知恵好きすぎだろう
矮小化した自分に都合に良いというちょっとナツいフレーズ
てか、結論は出てるだろう、なんか必死で逃げようとはしてるけど
コードに問題なければいいなら、Makefileで問題なければいいってこと
で終わること、とっくに終わってることだよ
412デフォルトの名無しさん
2021/04/06(火) 09:52:24.42ID:7tHYoHIo >>410
そう思わないのが居てもいいだろうに(居てもいいとお前自身がもう言ってしまってるようなもんだしなw)、何をそんなに拘って否定してんだか
(Makefileでの利点はお前は今も理解できないのはもうしょうがないとしても)
そう思わないのが居てもいいだろうに(居てもいいとお前自身がもう言ってしまってるようなもんだしなw)、何をそんなに拘って否定してんだか
(Makefileでの利点はお前は今も理解できないのはもうしょうがないとしても)
413デフォルトの名無しさん
2021/04/06(火) 09:53:19.77ID:MTiaA6bM >>411
> コードに問題なければいいなら、Makefileで問題なければいいってこと
シェルスクリプトのコードに問題なければいいなら、Makefileで問題なければいいってこと
ってどういう意味?
シェルスクリプトのコードに問題ないなら
シェルスクリプトのコードでいいでしょ?
> コードに問題なければいいなら、Makefileで問題なければいいってこと
シェルスクリプトのコードに問題なければいいなら、Makefileで問題なければいいってこと
ってどういう意味?
シェルスクリプトのコードに問題ないなら
シェルスクリプトのコードでいいでしょ?
414デフォルトの名無しさん
2021/04/06(火) 09:53:53.30ID:MTiaA6bM415デフォルトの名無しさん
2021/04/06(火) 09:56:33.41ID:7tHYoHIo 浅知恵はすぐ働くくせに、少しは頭をちゃんと使おうな
コードに問題なければ と言い出したのはなぜか自問してみ
自分の都合の良いだけの良い張り繰り返しだなw
コードに問題なければ と言い出したのはなぜか自問してみ
自分の都合の良いだけの良い張り繰り返しだなw
416デフォルトの名無しさん
2021/04/06(火) 09:57:37.45ID:MTiaA6bM417デフォルトの名無しさん
2021/04/06(火) 09:58:01.09ID:7tHYoHIo418デフォルトの名無しさん
2021/04/06(火) 09:58:49.67ID:MTiaA6bM419デフォルトの名無しさん
2021/04/06(火) 10:01:54.70ID:TYYwd7pV >>369
シェルスクリプトのオプションの話をしてたはずなのに、ただのターゲットに変えるとか、コスいことすんな!w
ちなみにもともとは、makefileでは「タスク表示」ができない、って不当なクレームがあっただけの話やったもよう。
おまえ、忘れてるやろ?w
シェルスクリプトのオプションの話をしてたはずなのに、ただのターゲットに変えるとか、コスいことすんな!w
ちなみにもともとは、makefileでは「タスク表示」ができない、って不当なクレームがあっただけの話やったもよう。
おまえ、忘れてるやろ?w
420デフォルトの名無しさん
2021/04/06(火) 10:02:58.82ID:7tHYoHIo421デフォルトの名無しさん
2021/04/06(火) 10:03:14.47ID:MTiaA6bM422デフォルトの名無しさん
2021/04/06(火) 10:03:46.44ID:7tHYoHIo423デフォルトの名無しさん
2021/04/06(火) 10:04:01.45ID:MTiaA6bM > なぜなら、お前が拘ってるのは他人の(Makefile使うな)に対してだろうに
何の話ですか?そんな話はどのレスでもしてませんよ
何の話ですか?そんな話はどのレスでもしてませんよ
424デフォルトの名無しさん
2021/04/06(火) 10:05:07.04ID:7tHYoHIo ほらほら「あくまでも自分の都合の良い言質が欲しいだけ」だろwww
425デフォルトの名無しさん
2021/04/06(火) 10:05:07.70ID:MTiaA6bM426デフォルトの名無しさん
2021/04/06(火) 10:08:05.69ID:7tHYoHIo 何を言ってるんだかなあ
今まで散々Makefileなんて使わないでシェルスクリプトでいいだろう(シェルスクリプト書けないのwとかさえ)と、Makefileいいよって言っている人に突っかかってたくせに
ね、
>おまえ、忘れてるやろ?w
いつものしょっちゅうやってることだけどなww
今まで散々Makefileなんて使わないでシェルスクリプトでいいだろう(シェルスクリプト書けないのwとかさえ)と、Makefileいいよって言っている人に突っかかってたくせに
ね、
>おまえ、忘れてるやろ?w
いつものしょっちゅうやってることだけどなww
427デフォルトの名無しさん
2021/04/06(火) 10:09:04.06ID:7tHYoHIo 止まれ、アホみたいにながーい要因が無くなった(忘却された)ようで終わりだな
428デフォルトの名無しさん
2021/04/06(火) 10:09:12.04ID:MTiaA6bM > Makefileいいよって言っている人に突っかかってたくせに
Makefileいいよって言ってる人は
どこのレスの話ですか?
Makefileいいよって言ってる人は
どこのレスの話ですか?
429デフォルトの名無しさん
2021/04/06(火) 10:10:37.68ID:7tHYoHIo まさかmakeとか言うんじゃないだろうな、まさかな
何をおっしゃってるんですか、誤魔化すにも馬鹿すぎる誤魔化しすぎですよ
何をおっしゃってるんですか、誤魔化すにも馬鹿すぎる誤魔化しすぎですよ
430デフォルトの名無しさん
2021/04/06(火) 10:11:34.82ID:TYYwd7pV431デフォルトの名無しさん
2021/04/06(火) 10:11:54.30ID:MTiaA6bM432デフォルトの名無しさん
2021/04/06(火) 10:12:37.38ID:7tHYoHIo >>430
あなたはいらっしゃらないようですよ、もう彼にはw
あなたはいらっしゃらないようですよ、もう彼にはw
433デフォルトの名無しさん
2021/04/06(火) 10:14:01.22ID:TYYwd7pV あと、makeの-nとか-qとかのオプションを、シェルスクリプトで簡単にやる方法も頼むわ。
434デフォルトの名無しさん
2021/04/06(火) 10:15:02.84ID:7tHYoHIo >>431
また見え透いた自分の都合の良いのを出す(ある意味状態を模造)るんじゃないよ
また見え透いた自分の都合の良いのを出す(ある意味状態を模造)るんじゃないよ
435デフォルトの名無しさん
2021/04/06(火) 10:15:34.36ID:MTiaA6bM436デフォルトの名無しさん
2021/04/06(火) 10:16:47.41ID:TYYwd7pV437デフォルトの名無しさん
2021/04/06(火) 10:19:48.49ID:MTiaA6bM >>433
> あと、makeの-nとか-qとかのオプションを、シェルスクリプトで簡単にやる方法も頼むわ。
簡単だね
makeの-n
DRY_RUN=1
run() {
if [ "$DRY_RUN" ]; then
echo "$@"
else
"$@"
fi
}
run hage hage
-qはタスクランナーとは関係ないな
依存関係があるものに関しては、シェルスクリプトからmakeを呼び出すっていいましたね
> あと、makeの-nとか-qとかのオプションを、シェルスクリプトで簡単にやる方法も頼むわ。
簡単だね
makeの-n
DRY_RUN=1
run() {
if [ "$DRY_RUN" ]; then
echo "$@"
else
"$@"
fi
}
run hage hage
-qはタスクランナーとは関係ないな
依存関係があるものに関しては、シェルスクリプトからmakeを呼び出すっていいましたね
438デフォルトの名無しさん
2021/04/06(火) 10:20:46.70ID:MTiaA6bM >>436
xargsの話ですか?
xargsの話ですか?
439デフォルトの名無しさん
2021/04/06(火) 10:24:39.26ID:TYYwd7pV >>435
> POSIXじゃないので実行できない場合があります
-jオプションの話を出したのはおまえちゃうの?w
まあ、ヤな環境は、捨てるか逃げるかしたらええで。
> え?そんな話今はじめて出ましたよねw
> 並列実行したくないなら & を取るようにしましょう
prepareが重いという前提を無視すんな。w
たとえばprepare1時間、task*は1分だとすると、makeなら1時間3分、シェルスクリプトなら3時間3分やな。。。
おまえは、本当にそれでええと思っとるんか?
> POSIXじゃないので実行できない場合があります
-jオプションの話を出したのはおまえちゃうの?w
まあ、ヤな環境は、捨てるか逃げるかしたらええで。
> え?そんな話今はじめて出ましたよねw
> 並列実行したくないなら & を取るようにしましょう
prepareが重いという前提を無視すんな。w
たとえばprepare1時間、task*は1分だとすると、makeなら1時間3分、シェルスクリプトなら3時間3分やな。。。
おまえは、本当にそれでええと思っとるんか?
440デフォルトの名無しさん
2021/04/06(火) 10:29:29.37ID:TYYwd7pV441デフォルトの名無しさん
2021/04/06(火) 10:34:37.59ID:7tHYoHIo >>440
全然関係ないけど、マジ関西人ですか?
全然関係ないけど、マジ関西人ですか?
442デフォルトの名無しさん
2021/04/06(火) 11:18:25.64ID:TYYwd7pV443デフォルトの名無しさん
2021/04/06(火) 11:27:15.77ID:WaPRNDqz444デフォルトの名無しさん
2021/04/06(火) 19:56:38.86ID:TgvwVymv くだらないスレだな
445デフォルトの名無しさん
2021/04/06(火) 22:33:28.43ID:ceQksYZ9 と、くだらないレスしたがり
446デフォルトの名無しさん
2021/04/10(土) 21:39:22.59ID:1S4Ftpl7 >>237
# シェルスクリプトマガジン vol.30
# POSIX原理主義の逆襲
url=$( echo '/M57C8NB70B/pd/koobe-哲寛仲當-03-lov-ンジガマトプリクスルェシ/pj.oc.nozama.www//:sptth' | rev )
/usr/bin/firefox "$url"
xdg-open "$url"
# /usr/bin/google-chrome "$url"
# シェルスクリプトマガジン vol.30
# POSIX原理主義の逆襲
url=$( echo '/M57C8NB70B/pd/koobe-哲寛仲當-03-lov-ンジガマトプリクスルェシ/pj.oc.nozama.www//:sptth' | rev )
/usr/bin/firefox "$url"
xdg-open "$url"
# /usr/bin/google-chrome "$url"
447デフォルトの名無しさん
2021/04/10(土) 21:47:45.62ID:AcLZ31++ クソな名前出すな
448デフォルトの名無しさん
2021/04/11(日) 13:12:18.88ID:kxus16p0 revはちゃんと文字単位でひっくり返してくれるんだ?
へぇー
へぇー
449デフォルトの名無しさん
2021/04/11(日) 13:26:48.64ID:kxus16p0 >>250
デスクトップ向けlinuxだと4KiBくらい貯めるのかな
改行のありなしやら入出力がターミナルかやら(test -t)で決めてるみたい?
tr -d \\nで改行絞った小さなテキストが延々と出てこなかったりするな
何が起きてるのか正直分からん
デスクトップ向けlinuxだと4KiBくらい貯めるのかな
改行のありなしやら入出力がターミナルかやら(test -t)で決めてるみたい?
tr -d \\nで改行絞った小さなテキストが延々と出てこなかったりするな
何が起きてるのか正直分からん
450デフォルトの名無しさん
2021/04/11(日) 17:47:40.37ID:+rFBum4X Standard C Library の FILE の挙動
Cでプログラム書いてみればわかるよ
Cでプログラム書いてみればわかるよ
451デフォルトの名無しさん
2021/04/14(水) 19:37:11.29ID:35zwdl55 > ・csh/tcshでのシェルスクリプトは*まったく推奨しません*
マジだった。ちょっと興味本位でやってみたら
変数に改行を入れようとしただけで力尽きるとは思わなかったわw
マジだった。ちょっと興味本位でやってみたら
変数に改行を入れようとしただけで力尽きるとは思わなかったわw
452デフォルトの名無しさん
2021/04/15(木) 03:22:43.97ID:06Qz2l+r >>2の最後の行、ゆうなって馬鹿みたいだから正しい言葉遣いに直してほしいなぁと思うのは私だけ?
453デフォルトの名無しさん
2021/04/15(木) 05:04:20.88ID:5nOuM6c9 言うなをゆうなって綴るの関西弁かな
454デフォルトの名無しさん
2021/04/15(木) 07:26:46.96ID:kVBfEodl 言うをゆうと発音するのは標準語
言うをゆうと書くのはただのバカ
言うをゆうと書くのはただのバカ
455デフォルトの名無しさん
2021/04/15(木) 10:26:01.70ID:CT+ncMKm 半分ネタやろ。
どうでもええわ。
どうしてもイヤなら、次スレを自分でたてて直せ。
どうでもええわ。
どうしてもイヤなら、次スレを自分でたてて直せ。
456デフォルトの名無しさん
2021/04/15(木) 11:21:03.44ID:cwo7XkJi >>449
https://linuxjm.osdn.jp/html/LDP_man-pages/man3/setbuf.3.html
これ。書いてある通りそのままの動作だろう。4Kとかデフォルトは C Library による
コマンドで制御できるのは>>248のstdbuf
stdbufのソースは、FILEのこれらは外から制御なんてそもそも考えてないのでトリッキーなことして面白い
https://linuxjm.osdn.jp/html/LDP_man-pages/man3/setbuf.3.html
これ。書いてある通りそのままの動作だろう。4Kとかデフォルトは C Library による
コマンドで制御できるのは>>248のstdbuf
stdbufのソースは、FILEのこれらは外から制御なんてそもそも考えてないのでトリッキーなことして面白い
457デフォルトの名無しさん
2021/04/15(木) 11:49:33.19ID:CT+ncMKm $SHELLOPTSに「interactive-comments」と入ってるんだけど、これは何?
man bashには記述がない。。。
man bashには記述がない。。。
458デフォルトの名無しさん
2021/04/15(木) 12:00:32.18ID:cwo7XkJi man bashにもあるやん
# 以降はコメント/無視するだって
# 以降はコメント/無視するだって
459デフォルトの名無しさん
2021/04/15(木) 12:38:40.16ID:wukWzou0 "いい"も口語なんでauto。ちゃんとposix使ってください
460デフォルトの名無しさん
2021/04/15(木) 13:42:52.38ID:EYZytY4L >>456
あざっす
システムプログラミングアレルギー(manで2/3出てきたらそっ閉じ)なもんで…
sedとか-u(unbufferd )オプション付いてていいね、チョロチョロ出てくるのも想定してるんだろう
他はstdbuf効くならば試行錯誤って感じで凌いでるけど、もう腹括る時だろうか…
あざっす
システムプログラミングアレルギー(manで2/3出てきたらそっ閉じ)なもんで…
sedとか-u(unbufferd )オプション付いてていいね、チョロチョロ出てくるのも想定してるんだろう
他はstdbuf効くならば試行錯誤って感じで凌いでるけど、もう腹括る時だろうか…
461デフォルトの名無しさん
2021/04/15(木) 13:47:44.84ID:EYZytY4L >>451
ちょうど'94年のcomp.lang.unixのfack読んでたとこだけどcshナウいぜって空気でノスタルジー
問題のリダイレクト関連は(入れ子)でサブプロセス内/外のリダイレクトを切り分け頑張るアンサーが面白かったです
ちょうど'94年のcomp.lang.unixのfack読んでたとこだけどcshナウいぜって空気でノスタルジー
問題のリダイレクト関連は(入れ子)でサブプロセス内/外のリダイレクトを切り分け頑張るアンサーが面白かったです
462デフォルトの名無しさん
2021/04/15(木) 13:50:07.80ID:EYZytY4L unixはlangじゃねえわcomp.unix.*ですごめん
463デフォルトの名無しさん
2021/04/15(木) 14:02:10.00ID:ddLCV2xW いまもcsh/tcsh使ってる人っているんだろうか?
shが神に見えるんだが
shからすれば、csh/tcshはcmdと同レベル
shが神に見えるんだが
shからすれば、csh/tcshはcmdと同レベル
464デフォルトの名無しさん
2021/04/15(木) 14:31:45.46ID:Hr/L3ezh 昔のshはそれはそれでクセがあったみたいだぞ、faqによると
誰もが一度は躓く
cmd |while ..
do change v
done
echo $v
問題ももっと酷くて、whileへ<inすらもアウトだった
そもそもリダイレクトはフォークする必要無いよね?バグみたいなもん?
なおパイプラインはフォークしてナンボなので合理的な設計だと思ってます
オプションlastpipe提供が現実的な妥協点かなと
誰もが一度は躓く
cmd |while ..
do change v
done
echo $v
問題ももっと酷くて、whileへ<inすらもアウトだった
そもそもリダイレクトはフォークする必要無いよね?バグみたいなもん?
なおパイプラインはフォークしてナンボなので合理的な設計だと思ってます
オプションlastpipe提供が現実的な妥協点かなと
465462
2021/04/15(木) 14:33:04.56ID:Hr/L3ezh です
466デフォルトの名無しさん
2021/04/15(木) 14:42:31.76ID:gZ/E9OPr >>460
ちなみに、
unbufferdだけでいいんじゃあって場合、
setbuf -o0 command1 | setbuf -o0 command2 | command3
setbuf -o0 command4 | command5
...
でなくて、冒頭で、
export LD_PRELOAD='/your/location/libstdbuf.so'
export _STDBUF_O=0
ってすると、以下外部コマンドは全て setbuf -o0 をすることになる
ちなみに、
unbufferdだけでいいんじゃあって場合、
setbuf -o0 command1 | setbuf -o0 command2 | command3
setbuf -o0 command4 | command5
...
でなくて、冒頭で、
export LD_PRELOAD='/your/location/libstdbuf.so'
export _STDBUF_O=0
ってすると、以下外部コマンドは全て setbuf -o0 をすることになる
467デフォルトの名無しさん
2021/04/15(木) 14:56:50.94ID:Hr/L3ezh >>466
環境変数という手があったか
(いざ困るまでは)もちろんバッファはあった方が良いので、exportするスクリプトを書くと親からうっかりsourceしてしまいそうで…
env/インライン代入 パイプライン
にしといた方が安全そうですかね?
環境変数という手があったか
(いざ困るまでは)もちろんバッファはあった方が良いので、exportするスクリプトを書くと親からうっかりsourceしてしまいそうで…
env/インライン代入 パイプライン
にしといた方が安全そうですかね?
468デフォルトの名無しさん
2021/04/15(木) 15:03:30.09ID:Hr/L3ezh そもそもsourceしまくるのがお行儀悪いから、そっちを控えるべしなのかな?
何でもシェル関数にしてそれをソースしまくるパッケージを入れてしまって、bash -xオプション付けると何か操作する度に画面が数ページ流れてうんざりした経験が…
何でもシェル関数にしてそれをソースしまくるパッケージを入れてしまって、bash -xオプション付けると何か操作する度に画面が数ページ流れてうんざりした経験が…
469デフォルトの名無しさん
2021/04/15(木) 15:41:44.39ID:CT+ncMKm470デフォルトの名無しさん
2021/04/15(木) 18:10:56.52ID:ddLCV2xW471デフォルトの名無しさん
2021/04/15(木) 19:33:19.08ID:hKlH1+Q2472デフォルトの名無しさん
2021/04/17(土) 05:11:50.36ID:YdwasajV >>446
URL=$( echo '/swenybb/ten.hc5.enildaeh//:sptth' | rev )
TMP_DIR=~/tmp/5ch; DOC=${TMP_DIR}/index.php; mkdir -p ${TMP_DIR}
wget --output-document=${DOC} ${URL} || exit 1
iconv -c -f Shift_JIS -t utf-8 ${DOC} \
| grep '2021' | awk -F '</a> <br>' '{print $1}' \
| awk -F '</font>]' '{print $2}' > "~/Documents/5ch_dv.txt"
i=1; while true; do
cut --bytes=1-210 "~/Documents/5ch_dv.txt" | shuf -n 2; sleep 10; done
URL=$( echo '/swenybb/ten.hc5.enildaeh//:sptth' | rev )
TMP_DIR=~/tmp/5ch; DOC=${TMP_DIR}/index.php; mkdir -p ${TMP_DIR}
wget --output-document=${DOC} ${URL} || exit 1
iconv -c -f Shift_JIS -t utf-8 ${DOC} \
| grep '2021' | awk -F '</a> <br>' '{print $1}' \
| awk -F '</font>]' '{print $2}' > "~/Documents/5ch_dv.txt"
i=1; while true; do
cut --bytes=1-210 "~/Documents/5ch_dv.txt" | shuf -n 2; sleep 10; done
473デフォルトの名無しさん
2021/04/17(土) 19:55:09.09ID:woV5WRvk URL=$( echo 'fdr.wkwen/ssr/pj.en.oog.hcraes//:sptth' | rev )
TMP_DIR=~/tmp/goo; DOC=${TMP_DIR}/index.php; mkdir -p ${TMP_DIR}
wget --output-document=${DOC} ${URL} || exit 1
iconv -c -f utf-8 -t utf-8 ${DOC} | grep -v 'gooウェブ検索 急上昇ワード' \
| grep 'title' | awk -F '<title>' '{print $2}' \
| awk -F '</title>' '{print $1}' >> "$HOME/Documents/goo_web.txt"
while read KEYWORD; do
URL=$( echo '=yreuq_hcraes?stluser/moc.ebutuoy.www//:sptth' | rev )""$KEYWORD""
firefox "$URL"; sleep $( shuf -i 10-21 -n 1 )
done < "$HOME/Documents/goo_web.txt"
TMP_DIR=~/tmp/goo; DOC=${TMP_DIR}/index.php; mkdir -p ${TMP_DIR}
wget --output-document=${DOC} ${URL} || exit 1
iconv -c -f utf-8 -t utf-8 ${DOC} | grep -v 'gooウェブ検索 急上昇ワード' \
| grep 'title' | awk -F '<title>' '{print $2}' \
| awk -F '</title>' '{print $1}' >> "$HOME/Documents/goo_web.txt"
while read KEYWORD; do
URL=$( echo '=yreuq_hcraes?stluser/moc.ebutuoy.www//:sptth' | rev )""$KEYWORD""
firefox "$URL"; sleep $( shuf -i 10-21 -n 1 )
done < "$HOME/Documents/goo_web.txt"
474デフォルトの名無しさん
2021/04/17(土) 19:55:27.64ID:HVVFTxep きたねーコードであらすな
475terai
2021/04/27(火) 17:28:08.57ID:K85aNu+Y Linux(CentOS7)からsshで192.168.1.50(windows)に接続して、grepでD:\samba-backup\tmpの中を探して、
"bk-日付.tar"という名前のファイルがあれば"backup = O"、なければ"backup = O"と表示されるようにしたいと思い以下のようにシェルスクリプトを書きました。
if expect -c "
set timeout 5
spawn ssh administrator@192.168.1.50 cmd /c dir /b d:\\samba-backup\\tmp
expect \"password\"
send \"パスワード\n\"
expect eof
exit
"|grep "bk-$(日付).tar"
then echo "backup = O"
else echo "backup = X"
fi
実行すると"backup = O"と表示されると思ったのですが、"backup = X"と表示されます。tmpフォルダには"bk-日付.tar"という名前のファイルが確かに置いてあります。どうすれば"backup = O"と表示されるようになるのか教えてください。よろしくお願いいたします。
"bk-日付.tar"という名前のファイルがあれば"backup = O"、なければ"backup = O"と表示されるようにしたいと思い以下のようにシェルスクリプトを書きました。
if expect -c "
set timeout 5
spawn ssh administrator@192.168.1.50 cmd /c dir /b d:\\samba-backup\\tmp
expect \"password\"
send \"パスワード\n\"
expect eof
exit
"|grep "bk-$(日付).tar"
then echo "backup = O"
else echo "backup = X"
fi
実行すると"backup = O"と表示されると思ったのですが、"backup = X"と表示されます。tmpフォルダには"bk-日付.tar"という名前のファイルが確かに置いてあります。どうすれば"backup = O"と表示されるようになるのか教えてください。よろしくお願いいたします。
476デフォルトの名無しさん
2021/04/27(火) 21:13:37.71ID:veDN2Ote 複雑な問題は複数のより単純な問題に分割すればいいんじゃないかな
まずは expect だけ実行して何が出力されるかみるところから始めなよ
まずは expect だけ実行して何が出力されるかみるところから始めなよ
477デフォルトの名無しさん
2021/04/27(火) 22:41:50.05ID:1A6wmpHM batの問題じゃないの
478デフォルトの名無しさん
2021/04/28(水) 06:11:06.05ID:M5uDUSOh "|grep "bk-$(日付).tar"
tmpフォルダには、"bk-日付.tar"という名前のファイルが確かに置いてあります
この「日付」って、日本語を使っているの?
基本的に、半角英数字・ascii 以外は、動かないのでは?
日本語には、CP932・UTF-8/16/32 の4つのエンコードがあって、
各OS・ファイルシステム・端末の入出力によって異なるから
tmpフォルダには、"bk-日付.tar"という名前のファイルが確かに置いてあります
この「日付」って、日本語を使っているの?
基本的に、半角英数字・ascii 以外は、動かないのでは?
日本語には、CP932・UTF-8/16/32 の4つのエンコードがあって、
各OS・ファイルシステム・端末の入出力によって異なるから
479デフォルトの名無しさん
2021/04/28(水) 06:38:05.23ID:xybfukyI 中途半端の知識。自分が詳しいつもりになってそう。
素人同然だから1から勉強してね
素人同然だから1から勉強してね
480478
2021/04/28(水) 06:50:30.51ID:M5uDUSOh そもそも、Linux から、cmd とか、Windows のコマンドを呼べるの?
Remote Login してるの?
PuTTY, TeraTerm, VSCode のRemote SSH などを使えば?
Remote Login してるの?
PuTTY, TeraTerm, VSCode のRemote SSH などを使えば?
481デフォルトの名無しさん
2021/04/28(水) 07:31:16.23ID:QZeYlOuK482terai
2021/04/28(水) 10:22:09.08ID:D1qJru6v spawn ssh administrator@192.168.1.50 cmd /c dir /b d:\\samba-backup\\tmp
のところを
spawn ssh administrator@192.168.1.50 cmd /c dir /b d:\\\\samba-backup\\\\tmp
にしたらうまくいきました。ご迷惑をおかけしました。
のところを
spawn ssh administrator@192.168.1.50 cmd /c dir /b d:\\\\samba-backup\\\\tmp
にしたらうまくいきました。ご迷惑をおかけしました。
483478
2021/04/28(水) 10:55:25.45ID:M5uDUSOh 例えば、Windows 10, WSL2, Ubuntu 18.04, Ruby では、
Linux 側から、Windows側のC ドライブへアクセスできる
パス区切りも、/ を使える。
\ では、各端末でのエスケープを考慮しなければならないので、非常に難しい
Dir.glob( '/mnt/c/Users/Owner/Documents/test/**/*.txt' ) do | full_path |
next if File.directory? full_path # ファイルだけを処理する
p full_path
end
Linux 側から、Windows側のC ドライブへアクセスできる
パス区切りも、/ を使える。
\ では、各端末でのエスケープを考慮しなければならないので、非常に難しい
Dir.glob( '/mnt/c/Users/Owner/Documents/test/**/*.txt' ) do | full_path |
next if File.directory? full_path # ファイルだけを処理する
p full_path
end
484デフォルトの名無しさん
2021/04/28(水) 11:50:29.51ID:Ttx7vHwT sshを使うなら、ええかげんにexpectなんかせんでもええようにしたほうがええんちゃう?
鍵ファイルを使えば。
鍵ファイルを使えば。
485478
2021/04/28(水) 12:15:20.00ID:M5uDUSOh Ruby にも、expect モジュールがある
486デフォルトの名無しさん
2021/04/28(水) 12:59:54.72ID:bPhU0BTO487デフォルトの名無しさん
2021/04/28(水) 16:16:23.22ID:mi6bhbk3 だよな
488デフォルトの名無しさん
2021/04/28(水) 18:13:04.67ID:xybfukyI ファイルの中に書いたマーカーの中に別のファイルを挿入するにはどうしたらいい?
例えばこんな感じのファイルがあったとして、<marker>〜</marker>の中身を
別のファイルに入れ替えたい。posixコマンドだけで
aaa
bbb
<marker>
ccc
ddd
</marker>
eee
fff
例えばこんな感じのファイルがあったとして、<marker>〜</marker>の中身を
別のファイルに入れ替えたい。posixコマンドだけで
aaa
bbb
<marker>
ccc
ddd
</marker>
eee
fff
489デフォルトの名無しさん
2021/04/28(水) 18:34:58.14ID:a9uMhLuq awkだけでなんとでも書けそう
490デフォルトの名無しさん
2021/04/28(水) 18:39:28.46ID:goIH39T4 だよな
釣りか?
釣りか?
491デフォルトの名無しさん
2021/04/28(水) 18:46:45.34ID:xybfukyI C言語でもどんな言語でも書けるというだけのことなら
私も知ってますが・・・
私も知ってますが・・・
492デフォルトの名無しさん
2021/04/28(水) 18:50:26.24ID:snsrMSzN csplit
cat head anotherfile rest
cat head anotherfile rest
493デフォルトの名無しさん
2021/04/28(水) 18:55:44.80ID:snsrMSzN ただ行単位で分割なので適当にタグ前後に改行挿入などよしなに
494デフォルトの名無しさん
2021/04/28(水) 19:02:11.38ID:snsrMSzN csplitで2回割って3つに、真ん中を捨てcatを想定したが、regexで割れるので<marker>...</marker>を指定して一回で割った方が素直かもしらん
ファイル内に複数回マークアップが現れる時も、マークアップ+1個に割れるのでスケーラブル
ファイル内に複数回マークアップが現れる時も、マークアップ+1個に割れるのでスケーラブル
495デフォルトの名無しさん
2021/04/28(水) 19:11:21.62ID:xybfukyI ファイルに複数回現れるのは想定してませんでしたが
その場合は全部置き換えたいです
中間ファイルを作るのは一時的であっても
想定してないファイルができるので避けたいです
その場合は全部置き換えたいです
中間ファイルを作るのは一時的であっても
想定してないファイルができるので避けたいです
496デフォルトの名無しさん
2021/04/28(水) 19:14:50.05ID:mi6bhbk3497デフォルトの名無しさん
2021/04/28(水) 19:19:23.15ID:snsrMSzN じゃあsedとかでいいんじゃね、行志向だとフラグ立てる必要があるので面倒だから、一時的にtrで改行を変な文字に置換して一行扱いすると楽
複数回マークアップするなら、非貪欲マッチの為に終わりマーカーを^指定するのを忘れないでね、念の為
複数回マークアップするなら、非貪欲マッチの為に終わりマーカーを^指定するのを忘れないでね、念の為
498デフォルトの名無しさん
2021/04/28(水) 19:22:31.94ID:snsrMSzN >>496
素直な質問者かと思ったらこんなレスしてんのなあ…
素直な質問者かと思ったらこんなレスしてんのなあ…
499デフォルトの名無しさん
2021/04/30(金) 02:47:41.34ID:UkwhHCBd >>497
オプション--null-dataをつけたらええやん?
オプション--null-dataをつけたらええやん?
500デフォルトの名無しさん
2021/05/01(土) 16:16:25.77ID:R5WysE71 今日の発見
何気なく LANG=C の状態で man ping をやったら日本語マニュアルでは出て来なかった -a を発見。
しかし、 "Audible ping. " ってなんだろうと思い、 -a を付けて ping をやってみるが -a なしと違いはない。
何だろうと散々悩んでまさか本当に音が出るのではと思い、ヘッドホンを指して聞いてみたら BEEP 音が出ていた。
(端末に Ctrl+G の出力しているだけの模様)。
これは普通の状態で音が出るようになってないと使えない(というか分からない)機能だな。
ていうか、この機能って需要あるのか? どういう時に使うんだ? (耳は聞こえるけど目が見えない人向け?)
何気なく LANG=C の状態で man ping をやったら日本語マニュアルでは出て来なかった -a を発見。
しかし、 "Audible ping. " ってなんだろうと思い、 -a を付けて ping をやってみるが -a なしと違いはない。
何だろうと散々悩んでまさか本当に音が出るのではと思い、ヘッドホンを指して聞いてみたら BEEP 音が出ていた。
(端末に Ctrl+G の出力しているだけの模様)。
これは普通の状態で音が出るようになってないと使えない(というか分からない)機能だな。
ていうか、この機能って需要あるのか? どういう時に使うんだ? (耳は聞こえるけど目が見えない人向け?)
501デフォルトの名無しさん
2021/05/01(土) 16:29:28.92ID:djtwQ/hU システム言語英語にしてるから気づかなかった
502デフォルトの名無しさん
2021/05/01(土) 16:33:54.50ID:8vBq+4lu 目が見えないなら読み上げとか使うだろうし
ただのユーモアのような気がする
ただのユーモアのような気がする
503デフォルトの名無しさん
2021/05/01(土) 17:12:17.40ID:/E4OYG0J >>500
https://lab.kuas.ac.jp/~ippei94da/unixtodaystips/index.html#%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AE%E5%B0%8E%E9%80%9A%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF
まあ、本気でやるならスクリプトを書くところやけど、ちょろっと待ったり確認したりするだけなら?
https://lab.kuas.ac.jp/~ippei94da/unixtodaystips/index.html#%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AE%E5%B0%8E%E9%80%9A%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF
まあ、本気でやるならスクリプトを書くところやけど、ちょろっと待ったり確認したりするだけなら?
504デフォルトの名無しさん
2021/05/01(土) 17:24:56.48ID:qPtffzbe まあBEEPだと鳴るにしても、あんまり便利じゃないから、bellってスクリプトつくって、mpg123で小さなサウンドファイル鳴らしてたなーw
時間のかかる処理動かすときに、;bellとかやってたわw
時間のかかる処理動かすときに、;bellとかやってたわw
505デフォルトの名無しさん
2021/05/01(土) 20:54:25.86ID:mMPVMQKF >>500
日本語マニュアルは古いからな
Ubuntu 20.04のbashのマニュアルなんか
英語版は当然bashのバージョンと同じ5.0(2018年)のマニュアルが入ってるが
日本語版だと4.2(2010年)のやつだからな
あとpingに音がなる機能は便利だぞ
pingで音を鳴らしながら断線チェックするんだよ
断線しかかってるケーブルがあれば触った時に音がなったり止まったりするだろ
一人がディスプレイの前にいて「あ!そのケーブル触ったときに繋がりました!」
なんて叫ぶ必要がなくなるから、一人でも作業できる
日本語マニュアルは古いからな
Ubuntu 20.04のbashのマニュアルなんか
英語版は当然bashのバージョンと同じ5.0(2018年)のマニュアルが入ってるが
日本語版だと4.2(2010年)のやつだからな
あとpingに音がなる機能は便利だぞ
pingで音を鳴らしながら断線チェックするんだよ
断線しかかってるケーブルがあれば触った時に音がなったり止まったりするだろ
一人がディスプレイの前にいて「あ!そのケーブル触ったときに繋がりました!」
なんて叫ぶ必要がなくなるから、一人でも作業できる
506デフォルトの名無しさん
2021/05/01(土) 21:24:12.83ID:j1QPmhQJ507デフォルトの名無しさん
2021/05/01(土) 21:43:09.83ID:j1QPmhQJ508デフォルトの名無しさん
2021/05/01(土) 22:42:41.06ID:mMPVMQKF 軍人は卓球が好きだったんか?
509デフォルトの名無しさん
2021/05/01(土) 22:53:01.56ID:/E4OYG0J510デフォルトの名無しさん
2021/05/01(土) 22:56:49.66ID:oDxNWiQE 軍関係者、それも技術者研究者ならそんなナワバリとか無いんじゃね
陸軍でも海軍のそういうのは知ってはいるだろう一般知識的な
事故死で亡くなってるのね。世界的貢献度が高いし有名だから残してもいるのかな
陸軍でも海軍のそういうのは知ってはいるだろう一般知識的な
事故死で亡くなってるのね。世界的貢献度が高いし有名だから残してもいるのかな
511デフォルトの名無しさん
2021/05/01(土) 22:59:35.67ID:oDxNWiQE512デフォルトの名無しさん
2021/05/02(日) 00:08:11.78ID:r2Ed4Ypi513デフォルトの名無しさん
2021/05/02(日) 00:20:14.06ID:AuvpVVY/514デフォルトの名無しさん
2021/05/02(日) 01:01:49.26ID:AuvpVVY/ BSD系のpingは応答があるとき鳴るのとないとき鳴るのと2つオプションがある。
515デフォルトの名無しさん
2021/05/09(日) 03:33:23.42ID:DzKdtz/a ほんとこの人酷いわ。関わりたくないからここで書くけど
バカにされてる事にも気づかないでしゃしゃり出てきてこのセリフ
https://twitter.com/col_richie/status/1390912236181364737
> 何を隠そう私こそPOSIX原理主義者。
>
> 「藪医者」の語源(の一説)が面白いので紹介しておきたい。
>
> 藪医者とは、高価な薬が買えずに藪から薬草に使えそうな草を見繕って患者に与えていた医者のことだという。
>
> つまり適当にライブラリーを拾って解決を図るプログラマーは藪医者同然ということになる。
じゃあ藪医者ではない凄腕の医者は自分で薬を作ってるのか?
お前だって自分で作らずにPOSIXコマンドを使って解決してるだけだろ
他人の成果を利用してるだけのくせに自分で何も作らずに主義だけでマウント取ろうとするな
藪医者の語源を自分の主義を正当化するために曲解して利用するな
まさにPOSIX"原理"主義者だと思うわ
https://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%AA%E3%82%B9%E3%83%88%E6%95%99%E5%8E%9F%E7%90%86%E4%B8%BB%E7%BE%A9
> キリスト教原理主義(キリストきょうげんりしゅぎ、英語: Christian fundamentalism)とは、
> 特にアメリカ合衆国で聖書の教えを硬直的、新興宗教的に歪曲するキリスト教右派、キリスト教根本主義、
> キリスト教会とその教派に向けて使用される。非難、侮蔑の意味合いを持って使用される場合も多い。
https://twitter.com/takapon_jp/status/9068335656
> 原理主義者はやはりイスラム原理主義者も捕鯨反対原理主義者も
> 正義原理主義者の検察もみんな頑固だから、
> 色んな曲解をしながら原理主義の姿勢を崩さない。
> だからこその原理主義者なんだろうが。。。というわけでもう、寝る。
お前が言う交換可能性とかPOSIXでは一切言われていない
POSIXの教えとは無関係なのにPOSIX原理主義者
POSIXという言葉と成果を利用してるだけ
https://twitter.com/5chan_nel (5ch newer account)
バカにされてる事にも気づかないでしゃしゃり出てきてこのセリフ
https://twitter.com/col_richie/status/1390912236181364737
> 何を隠そう私こそPOSIX原理主義者。
>
> 「藪医者」の語源(の一説)が面白いので紹介しておきたい。
>
> 藪医者とは、高価な薬が買えずに藪から薬草に使えそうな草を見繕って患者に与えていた医者のことだという。
>
> つまり適当にライブラリーを拾って解決を図るプログラマーは藪医者同然ということになる。
じゃあ藪医者ではない凄腕の医者は自分で薬を作ってるのか?
お前だって自分で作らずにPOSIXコマンドを使って解決してるだけだろ
他人の成果を利用してるだけのくせに自分で何も作らずに主義だけでマウント取ろうとするな
藪医者の語源を自分の主義を正当化するために曲解して利用するな
まさにPOSIX"原理"主義者だと思うわ
https://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%AA%E3%82%B9%E3%83%88%E6%95%99%E5%8E%9F%E7%90%86%E4%B8%BB%E7%BE%A9
> キリスト教原理主義(キリストきょうげんりしゅぎ、英語: Christian fundamentalism)とは、
> 特にアメリカ合衆国で聖書の教えを硬直的、新興宗教的に歪曲するキリスト教右派、キリスト教根本主義、
> キリスト教会とその教派に向けて使用される。非難、侮蔑の意味合いを持って使用される場合も多い。
https://twitter.com/takapon_jp/status/9068335656
> 原理主義者はやはりイスラム原理主義者も捕鯨反対原理主義者も
> 正義原理主義者の検察もみんな頑固だから、
> 色んな曲解をしながら原理主義の姿勢を崩さない。
> だからこその原理主義者なんだろうが。。。というわけでもう、寝る。
お前が言う交換可能性とかPOSIXでは一切言われていない
POSIXの教えとは無関係なのにPOSIX原理主義者
POSIXという言葉と成果を利用してるだけ
https://twitter.com/5chan_nel (5ch newer account)
516デフォルトの名無しさん
2021/05/09(日) 18:41:45.38ID:SrZZvaGV チラシの裏に書くのがおすすめだよ
517デフォルトの名無しさん
2021/05/09(日) 18:46:46.40ID:POHrmQr6 だな
普段あんなの視界外なのからは何宣伝してんのとも思えなくもない
普段あんなの視界外なのからは何宣伝してんのとも思えなくもない
518デフォルトの名無しさん
2021/05/09(日) 18:58:58.35ID:QngfRO5p やぶ医者 語源 でぐぐったら一番最初にこれが出てきてワロタw
https://www.kanken.or.jp/kanken/kankantown/trivia/trivia2.html
治療や診断が下手な医者を「藪医者」と言うが、草木が生い茂った「藪」とは直接関係なく、
もともとは「野巫(やぶ)」と書いたとされている。
「野巫」とは、まじないを使ったあやしげな治療しかできない田舎の医者のこと。
https://www.kanken.or.jp/kanken/kankantown/trivia/trivia2.html
治療や診断が下手な医者を「藪医者」と言うが、草木が生い茂った「藪」とは直接関係なく、
もともとは「野巫(やぶ)」と書いたとされている。
「野巫」とは、まじないを使ったあやしげな治療しかできない田舎の医者のこと。
519デフォルトの名無しさん
2021/05/10(月) 02:23:04.02ID:PuMIN21M POSIX原理主義ももう終わりかねぇ
ネタとしては面白かったよ
ネタとしては面白かったよ
520デフォルトの名無しさん
2021/05/10(月) 09:00:19.42ID:m/v6xXVY 例えば微細化技術で消費電力半分になるんだがそのまま消費電力
半分にするかそれともトランジスタ2倍積むかって言われたら
今だったら(dashが必須だったような)組み込み用チップでも
後者をとってWebなりWifiの機能つけてメモリも潤沢になってる
だろうしなあ
半分にするかそれともトランジスタ2倍積むかって言われたら
今だったら(dashが必須だったような)組み込み用チップでも
後者をとってWebなりWifiの機能つけてメモリも潤沢になってる
だろうしなあ
521デフォルトの名無しさん
2021/05/10(月) 09:42:46.16ID:Qz+CRcrD522デフォルトの名無しさん
2021/05/10(月) 10:46:13.22ID:jJW0aId3 >>521
んな単純な話やないやろ。
パフォーマンス指向なら性能が高ければ高いほど売りやすいし、原価比率が小さければ下げたところでたいした儲けにならんし、結局、モノにもよるし経営判断にもよる。
つーか、何の話や?w
んな単純な話やないやろ。
パフォーマンス指向なら性能が高ければ高いほど売りやすいし、原価比率が小さければ下げたところでたいした儲けにならんし、結局、モノにもよるし経営判断にもよる。
つーか、何の話や?w
523デフォルトの名無しさん
2021/05/10(月) 14:41:26.23ID:/CC3l5IU Debianとかパフォーマンスが理由?でdashに変わったけど
今後これが将来bashに変わることってあると思う?
俺はもう無いと思うんだよね
性能的にはbashで良くなったとしても
互換性を理由にPOSIXに縛られちゃった
今後これが将来bashに変わることってあると思う?
俺はもう無いと思うんだよね
性能的にはbashで良くなったとしても
互換性を理由にPOSIXに縛られちゃった
524デフォルトの名無しさん
2021/05/10(月) 16:49:20.96ID:/CC3l5IU POSIXってそんなにいいもんかねぇ
525デフォルトの名無しさん
2021/05/10(月) 18:43:12.00ID:hErX5Z2R Ubuntuでのことがあったから
まあしょうがないってことだな、ああいうプロダクトでは
bashismもそれでわかったくらいな、いいとか言う話ではないな
その後のUbuntuでもPOSIX縛りではないからな
まあPOSIXでも書けるならPOSIX準拠にするだろうけど、ああいうプロダクトでは
まあしょうがないってことだな、ああいうプロダクトでは
bashismもそれでわかったくらいな、いいとか言う話ではないな
その後のUbuntuでもPOSIX縛りではないからな
まあPOSIXでも書けるならPOSIX準拠にするだろうけど、ああいうプロダクトでは
526デフォルトの名無しさん
2021/05/10(月) 19:19:20.01ID:jJW0aId3 Ubuntuで何があったんだっけ?
527デフォルトの名無しさん
2021/05/10(月) 19:47:37.47ID:hErX5Z2R しばらくbashだったがdashに変えた。bashのPOSIXモードで動くように書いてたのに動かないやんけっていう
bashism問題に当たった最初のそれなりのスクリプトの数があるプロダクトがUbuntuじゃないのかな
もしくはちゃんと文書化して残したプロダクトかもだが
bashism問題に当たった最初のそれなりのスクリプトの数があるプロダクトがUbuntuじゃないのかな
もしくはちゃんと文書化して残したプロダクトかもだが
528デフォルトの名無しさん
2021/05/10(月) 19:56:07.55ID:wjJJgxye 必要ないからだろ
bash必要ならインストール
bash必要ならインストール
529デフォルトの名無しさん
2021/05/10(月) 19:58:31.16ID:hErX5Z2R GNU/Linuxだからログインシェル用には必ず入っていそうだが
530デフォルトの名無しさん
2021/05/10(月) 20:11:08.73ID:hErX5Z2R531デフォルトの名無しさん
2021/05/10(月) 20:19:30.27ID:aEtJHiO8 /bin/shがdashへのリンクになってるだけ
UbuntuでもDebianでもデフォルトのログインシェルはbash
上でも言われてる通りbashなりの拡張機能を使いたいならシバンをちゃんと設定すればいい話でしょ
UbuntuでもDebianでもデフォルトのログインシェルはbash
上でも言われてる通りbashなりの拡張機能を使いたいならシバンをちゃんと設定すればいい話でしょ
532デフォルトの名無しさん
2021/05/10(月) 20:29:43.61ID:hErX5Z2R なってるだけが起因なんだがな
というより、bashもなってるだけでもあったろうが、GNUは変なとこで拘るからなあ。素直にPOSIXモードならPOSIX準拠にしていればいいようなもんなのに
なんか他のPOSIXのことでもオレオレの主張は曲げない独自にやるんだというのはあったな
GNU/Linuxはログインシェルはどのディストリでもbashだろうな
変わったディストリはあるかもしれないが
FreeBSDはtcsh、OpenBSDはkshみたいだな。macOSはzshか。BSD系は色々(歴史的に)ありそうだな
というより、bashもなってるだけでもあったろうが、GNUは変なとこで拘るからなあ。素直にPOSIXモードならPOSIX準拠にしていればいいようなもんなのに
なんか他のPOSIXのことでもオレオレの主張は曲げない独自にやるんだというのはあったな
GNU/Linuxはログインシェルはどのディストリでもbashだろうな
変わったディストリはあるかもしれないが
FreeBSDはtcsh、OpenBSDはkshみたいだな。macOSはzshか。BSD系は色々(歴史的に)ありそうだな
533デフォルトの名無しさん
2021/05/11(火) 00:12:44.56ID:1enRFFJU534デフォルトの名無しさん
2021/05/11(火) 07:58:52.53ID:FhvqefgH トレースしてるだけ
535デフォルトの名無しさん
2021/05/11(火) 12:39:30.70ID:PU80Jyjy 極論だが古典的なシステムでは /bin/sh は POSIX 準拠でさえないんだから
POSIX 準拠厨はシェバンに #!/bin/dash って書くべき
POSIX 準拠厨はシェバンに #!/bin/dash って書くべき
536デフォルトの名無しさん
2021/05/11(火) 12:44:51.27ID:1enRFFJU >>535
POSIX準拠厨はPOSIXに準拠するなっていってんの?
POSIX準拠厨はPOSIXに準拠するなっていってんの?
537デフォルトの名無しさん
2021/05/11(火) 13:12:35.75ID:ZJle8Vfo dash用スクリプトを書くのにbashのデバッグ機能は必須(というほど大したもんでもないが…)
538デフォルトの名無しさん
2021/05/11(火) 13:27:42.49ID:rqNaE/tz >>535
今時の /bin/sh の最低限度がPOSIXなんだよ
POSIX以前の /bin/sh が現役(古いどころではないOSを無理に今でも使ってるではなく、現代的なOSでという意味での)なのはどこにあるの?
今時の /bin/sh の最低限度がPOSIXなんだよ
POSIX以前の /bin/sh が現役(古いどころではないOSを無理に今でも使ってるではなく、現代的なOSでという意味での)なのはどこにあるの?
539デフォルトの名無しさん
2021/05/11(火) 14:27:39.20ID:nf224V10 dashならPOSIX準拠、と信じてしまうのも、経緯的によろしくなさそうやけどなあ。
もうbashでもdashでも、#!に明記したほうがマシやろ。
あとから検索もしやすいし。
もうbashでもdashでも、#!に明記したほうがマシやろ。
あとから検索もしやすいし。
540デフォルトの名無しさん
2021/05/11(火) 17:39:06.11ID:kzU/MSxe ただの難癖
そして明記しない意味も無視かよ
そして明記しない意味も無視かよ
541デフォルトの名無しさん
2021/05/12(水) 00:28:01.49ID:w4TAZAbA >>539
スクリプトはPOSIXに準拠しており
POSIXシェルで動かすことを想定しているのだから
#!/bin/sh でいいだろ
実際に動かすシェルのことは知らん。そんなもん使う環境次第だろ。
スクリプトをmacOSにインストールするか、Debianにインストールするか、
その他のUNIXにインストールするか、そんなこと開発者が知ることなんてできない。
スクリプトがPOSIXシェルと言うだけの話。
スクリプトはPOSIXに準拠しており
POSIXシェルで動かすことを想定しているのだから
#!/bin/sh でいいだろ
実際に動かすシェルのことは知らん。そんなもん使う環境次第だろ。
スクリプトをmacOSにインストールするか、Debianにインストールするか、
その他のUNIXにインストールするか、そんなこと開発者が知ることなんてできない。
スクリプトがPOSIXシェルと言うだけの話。
542デフォルトの名無しさん
2021/05/12(水) 00:34:31.14ID:1N3VwigT >>538
bash じゃなくて dash を使わざるを得ないような極小環境で現役なものはどこにあるの?
正直 bash 拡張使って簡潔に書いたほうがRAMもROM/Storageも少ないんじゃないかと
さえ勘繰ってるわ
bash じゃなくて dash を使わざるを得ないような極小環境で現役なものはどこにあるの?
正直 bash 拡張使って簡潔に書いたほうがRAMもROM/Storageも少ないんじゃないかと
さえ勘繰ってるわ
543デフォルトの名無しさん
2021/05/12(水) 00:39:55.66ID:w4TAZAbA >>542
メモリやストレージを気にするならBusyBox一択
必然的に使うシェルはBusyBoxに内蔵されてるash
Alpine Linuxのbusyboxは 805.6KB
この中にシェルだけではなくcpやrmやawkなどの
よく使うコマンドが大量に詰め込まれてる
メモリやストレージを気にするならBusyBox一択
必然的に使うシェルはBusyBoxに内蔵されてるash
Alpine Linuxのbusyboxは 805.6KB
この中にシェルだけではなくcpやrmやawkなどの
よく使うコマンドが大量に詰め込まれてる
544デフォルトの名無しさん
2021/05/12(水) 00:44:00.91ID:w4TAZAbA Alpineのbashは742.3k、dashは106.3kだな
それからdashを使うのは環境が極小だからと言うよりも
bashがPOSIXに準拠してないからだ
それからdashを使うのは環境が極小だからと言うよりも
bashがPOSIXに準拠してないからだ
545デフォルトの名無しさん
2021/05/12(水) 00:46:26.43ID:w4TAZAbA 極小環境で現役なもの = 組み込み
546デフォルトの名無しさん
2021/05/12(水) 00:46:28.75ID:1N3VwigT >>541
/bin/sh が POSIX 準拠していない bash の環境もあるんだから
POSIX 準拠を期待しているならシェバンは #!/bin/sh と書くべきじゃない
既に /bin/sh が bash 期待のスクリプトも大量に出回っているから
/bin/sh から bash を追い出すのも現実的じゃない
つまりシェバンに #!/bin/sh って書く、イコール bash でも dash でも
動くなんかよくわからない基準でスクリプト書きますよって宣言している
ようなもんなんだから、そんな曖昧な宣言するぐらいならシェバンに
bash だの dash だの書いた方がいいんじゃないか?
/bin/sh が POSIX 準拠していない bash の環境もあるんだから
POSIX 準拠を期待しているならシェバンは #!/bin/sh と書くべきじゃない
既に /bin/sh が bash 期待のスクリプトも大量に出回っているから
/bin/sh から bash を追い出すのも現実的じゃない
つまりシェバンに #!/bin/sh って書く、イコール bash でも dash でも
動くなんかよくわからない基準でスクリプト書きますよって宣言している
ようなもんなんだから、そんな曖昧な宣言するぐらいならシェバンに
bash だの dash だの書いた方がいいんじゃないか?
547デフォルトの名無しさん
2021/05/12(水) 00:47:51.03ID:w4TAZAbA548デフォルトの名無しさん
2021/05/12(水) 00:48:09.14ID:w4TAZAbA #!/bin/sh はシェルスクリプトに書くものだってわかってる?
549デフォルトの名無しさん
2021/05/12(水) 00:49:26.60ID:w4TAZAbA POSIXシェルで書いてる人は、dashで動かすなんて想定してないからなw
550デフォルトの名無しさん
2021/05/12(水) 00:50:03.00ID:1N3VwigT >>545
いや、今どき組込システムで bash じゃなくて dash 使わざるを得ない程メモリが
逼迫しているか?って話よ
それに busybox だけ使うならそれでいいんだけどセットで使うアプリのスクリプトが
bash 依存だったりして結局 bash もイメージに組み込まざるをえないとかあり得る
(といういかあった)話なわけで
いや、今どき組込システムで bash じゃなくて dash 使わざるを得ない程メモリが
逼迫しているか?って話よ
それに busybox だけ使うならそれでいいんだけどセットで使うアプリのスクリプトが
bash 依存だったりして結局 bash もイメージに組み込まざるをえないとかあり得る
(といういかあった)話なわけで
551デフォルトの名無しさん
2021/05/12(水) 00:53:13.25ID:w4TAZAbA552デフォルトの名無しさん
2021/05/12(水) 01:00:08.38ID:1N3VwigT553デフォルトの名無しさん
2021/05/12(水) 01:01:55.36ID:w4TAZAbA 今からひっくり返せる戦況ってなんのこと?
すでに/bin/shがdashまたはashである環境が最多になってしまったから
脱bashの流れは止まらないって話?
すでに/bin/shがdashまたはashである環境が最多になってしまったから
脱bashの流れは止まらないって話?
554デフォルトの名無しさん
2021/05/12(水) 01:04:16.31ID:1N3VwigT555デフォルトの名無しさん
2021/05/12(水) 01:04:53.84ID:w4TAZAbA bashに限定したらダメでしょ?
dash/ashでは動かないんだから
dash/ashでは動かないんだから
556デフォルトの名無しさん
2021/05/12(水) 01:06:24.03ID:w4TAZAbA dash/ash用(つまりPOSIXシェル)で書けばbashでも動くが
bashの非POSIXシェル機能を使ったら、dash/ashで動かないってわかってますか?
bashの非POSIXシェル機能を使ったら、dash/ashで動かないってわかってますか?
557デフォルトの名無しさん
2021/05/12(水) 01:08:44.46ID:1N3VwigT >>553
いや bash 依存の #!/bin/sh なファイルがはびこっていてそれを駆逐できないって話なんだが
いや bash 依存の #!/bin/sh なファイルがはびこっていてそれを駆逐できないって話なんだが
558デフォルトの名無しさん
2021/05/12(水) 01:09:59.32ID:OO1NJlSc 本当すぐPOSIXの話題になるよな
559デフォルトの名無しさん
2021/05/12(水) 01:10:52.06ID:w4TAZAbA >>557
それはbash依存が問題なのではなくそのファイルが
メンテされてないっていうのが問題なだけ
そのファイルをメンテすればいい
メンテされてるなら
#!/bin/sh を #!/bin/bashに変更するだけ
それはbash依存が問題なのではなくそのファイルが
メンテされてないっていうのが問題なだけ
そのファイルをメンテすればいい
メンテされてるなら
#!/bin/sh を #!/bin/bashに変更するだけ
560デフォルトの名無しさん
2021/05/12(水) 01:11:51.40ID:w4TAZAbA561デフォルトの名無しさん
2021/05/12(水) 01:26:23.80ID:1N3VwigT >>556
君は(坊主憎けりゃ袈裟まで憎い的な) bashism 死すべしが強すぎて話がそれ過ぎるきらいがあるな
bash 依存のシェバンは #!/bin/bash って書くのは当然
#!/bin/sh は何に向けてるかわからんから #!/bin/dash って明示しようぜって話だぞ?
君は(坊主憎けりゃ袈裟まで憎い的な) bashism 死すべしが強すぎて話がそれ過ぎるきらいがあるな
bash 依存のシェバンは #!/bin/bash って書くのは当然
#!/bin/sh は何に向けてるかわからんから #!/bin/dash って明示しようぜって話だぞ?
562デフォルトの名無しさん
2021/05/12(水) 01:27:46.42ID:w4TAZAbA > #!/bin/sh は何に向けてるかわからんから
何に向けてるってPOSIXシェル全てだろ。何を言ってるんだ?
互換性がないならそれはそのシェルのバグであって
スクリプトの問題じゃない
何に向けてるってPOSIXシェル全てだろ。何を言ってるんだ?
互換性がないならそれはそのシェルのバグであって
スクリプトの問題じゃない
563デフォルトの名無しさん
2021/05/12(水) 01:28:10.36ID:w4TAZAbA #!/bin/dashだったらdash限定になるじゃん
アホなのかな?
アホなのかな?
564デフォルトの名無しさん
2021/05/12(水) 01:36:50.63ID:1N3VwigT565デフォルトの名無しさん
2021/05/12(水) 01:40:11.91ID:1N3VwigT >>562
> 何に向けてるってPOSIXシェル全てだろ。何を言ってるんだ?
だからそこに bash 拡張必須な困ったちゃんが混在してて排除しきれない
から POSIX シェルとは言い切れないってさっきから説明してんだろ
> 何に向けてるってPOSIXシェル全てだろ。何を言ってるんだ?
だからそこに bash 拡張必須な困ったちゃんが混在してて排除しきれない
から POSIX シェルとは言い切れないってさっきから説明してんだろ
566デフォルトの名無しさん
2021/05/12(水) 01:40:52.17ID:w4TAZAbA567デフォルトの名無しさん
2021/05/12(水) 01:42:05.81ID:w4TAZAbA568デフォルトの名無しさん
2021/05/12(水) 01:46:16.80ID:w4TAZAbA 私はこのスクリプトをPOSIXシェル用のコードで書いた
ちゃんと他のシェルで動くこともテストした
だから全てのPOSIXシェルで動作する
なので#!/bin/shにするのである
しかし私の中のもう一人の自分がdashでしか動かないかもしれないから
#!/bin/dashにしろというのである
なんて言う話だったら、頭がおかしいとしか思えないw
ちゃんと他のシェルで動くこともテストした
だから全てのPOSIXシェルで動作する
なので#!/bin/shにするのである
しかし私の中のもう一人の自分がdashでしか動かないかもしれないから
#!/bin/dashにしろというのである
なんて言う話だったら、頭がおかしいとしか思えないw
569デフォルトの名無しさん
2021/05/12(水) 02:04:49.76ID:w4TAZAbA つーかashとdashってほぼ同じでしょ?ashで動作してdashで動作しないことなんてあるの?
あるならdashで動作確認しろってところは変わらんがな
あるならdashで動作確認しろってところは変わらんがな
570デフォルトの名無しさん
2021/05/12(水) 02:05:08.70ID:VEm96Egx 理想主義者 vs 現実主義者
完全主義者 vs 悲観主義者
POSIX主義者 vs こだわらない派
落としどころはないな。。。
完全主義者 vs 悲観主義者
POSIX主義者 vs こだわらない派
落としどころはないな。。。
571デフォルトの名無しさん
2021/05/12(水) 02:10:51.35ID:w4TAZAbA POSIXに準拠したコードであれば/bin/shで動くんだから
#!/bin/shにすればいいってだけなんだがな
#!/bin/shにすればいいってだけなんだがな
572デフォルトの名無しさん
2021/05/12(水) 02:11:51.69ID:w4TAZAbA もちろんそれがdashでしか動かないって言うなら#!/bin/dashにするべきだがな
どのPOSIXシェルでも動くなら#!/bin/shでいい
どのPOSIXシェルでも動くなら#!/bin/shでいい
573デフォルトの名無しさん
2021/05/12(水) 02:28:43.75ID:qBxmR+eO ID:1N3VwigT
DebianやUbuntuで書いてあることを読んで出直せ
何もわかってないで自分が思うでしか言ってないだろう
DebianやUbuntuで書いてあることを読んで出直せ
何もわかってないで自分が思うでしか言ってないだろう
574デフォルトの名無しさん
2021/05/12(水) 02:30:20.07ID:qBxmR+eO >>570
DebianやUbuntuで書いてることはそんな対立を生まない至極もっともなことを書いてあるんだがな
DebianやUbuntuで書いてることはそんな対立を生まない至極もっともなことを書いてあるんだがな
575デフォルトの名無しさん
2021/05/12(水) 02:58:36.12ID:w4TAZAbA >>573
読んで出直したが何も変わらない。
お前がやってるその行為は
「DebianやUbuntuで書いてることを読んだら俺が正しいことが証明された。はい論破」
と言ってるのと何も変わらない
論破合戦がしたいなら、お前が書いてることを引用して
お前が言いたいことを主張しろ
読んで出直したが何も変わらない。
お前がやってるその行為は
「DebianやUbuntuで書いてることを読んだら俺が正しいことが証明された。はい論破」
と言ってるのと何も変わらない
論破合戦がしたいなら、お前が書いてることを引用して
お前が言いたいことを主張しろ
576デフォルトの名無しさん
2021/05/12(水) 02:59:27.57ID:w4TAZAbA >>574
DebianやUbuntuには#!/bin/shを#!/bin/dashにしろとは書かれていない
DebianやUbuntuには#!/bin/shを#!/bin/dashにしろとは書かれていない
577デフォルトの名無しさん
2021/05/12(水) 03:00:17.09ID:w4TAZAbA あ、俺に言われてるのと勘違いしたwww
ID:1N3VwigTに言ってるのか
ID:1N3VwigTに言ってるのか
578デフォルトの名無しさん
2021/05/12(水) 03:01:24.77ID:QztuhdBY お前に言ってねーよ
読めないいつものお前だろ?流石だな
わざと絡まないようにしてたのにwほんとお前はただただめんどくせえやつだな
読めないいつものお前だろ?流石だな
わざと絡まないようにしてたのにwほんとお前はただただめんどくせえやつだな
579デフォルトの名無しさん
2021/05/12(水) 03:02:31.85ID:QztuhdBY トンチンカンなことを並べてるしwww俺はそんなこと言ってねえのに
つくづくお前ってやつはただただただただめんどくさいだけのやつだなあ
つくづくお前ってやつはただただただただめんどくさいだけのやつだなあ
580デフォルトの名無しさん
2021/05/12(水) 03:14:44.73ID:QztuhdBY アホはほっておいて、まためんどくさいから最初と最後のへ
>>542
>dash を使わざるを得ないような極小環境
イミフ
/bin/sh が dash なLinuxディストリは普通にあるし。なんでそんな環境をと言い出すのかイミフすぎ
>>565
/bin/sh が POSIX shell であることが期待されているのは昔からだろう。どのくらい昔かは知らんがw
fileで #!/bin/sh なファイルがなんて出るか見てみ。fileのデータベースは公衆でメンテされていてのでソレなんだから大多数がそれを期待しているのは間違いないだろう
bashismなのが逸脱してるのとは別の話。bashismな #!/bin/sh は #!/bin/sh とするのは間違いだから #!/bin/bash に正しなさいというのが現在
あとdashにもなんかトンチンカンな難癖付けてるようだが、bashismと問題にしてるDebianがPOSIXから逸脱不足してるものを作るわけがないというのは常識的にわかるだろうにという
まあ、DebianやUbuntuで書いてあることを読んで出直せw
>>542
>dash を使わざるを得ないような極小環境
イミフ
/bin/sh が dash なLinuxディストリは普通にあるし。なんでそんな環境をと言い出すのかイミフすぎ
>>565
/bin/sh が POSIX shell であることが期待されているのは昔からだろう。どのくらい昔かは知らんがw
fileで #!/bin/sh なファイルがなんて出るか見てみ。fileのデータベースは公衆でメンテされていてのでソレなんだから大多数がそれを期待しているのは間違いないだろう
bashismなのが逸脱してるのとは別の話。bashismな #!/bin/sh は #!/bin/sh とするのは間違いだから #!/bin/bash に正しなさいというのが現在
あとdashにもなんかトンチンカンな難癖付けてるようだが、bashismと問題にしてるDebianがPOSIXから逸脱不足してるものを作るわけがないというのは常識的にわかるだろうにという
まあ、DebianやUbuntuで書いてあることを読んで出直せw
581デフォルトの名無しさん
2021/05/12(水) 03:18:24.36ID:rVJ0Zld2 > bashismな #!/bin/sh は #!/bin/sh とするのは間違いだから #!/bin/bash に正しなさいというのが現在
その理屈だと dashism な#!/bin/shは#!/bin/dashにしなさいってことになるだろw
その理屈だと dashism な#!/bin/shは#!/bin/dashにしなさいってことになるだろw
582デフォルトの名無しさん
2021/05/12(水) 03:20:25.42ID:QztuhdBY >>581
アホなレスすんなよwわざとだろ?w
アホなレスすんなよwわざとだろ?w
583デフォルトの名無しさん
2021/05/12(水) 03:22:04.92ID:rVJ0Zld2 はぁ?localとかPOSIXにないんだからdashismだろwww
584デフォルトの名無しさん
2021/05/12(水) 03:38:40.82ID:QztuhdBY バグじゃなのw ashのが残ってるとか
そういうのはdashismだからもちろん #!/bin/dash にすべきだろうな
そんなの使わないのが多いから見過ごされていても不思議ではないかな
他にもあるんだったらDebianに持って行った方がいいぞ。自ら ism を否定してるとこなんだから
そういうのはdashismだからもちろん #!/bin/dash にすべきだろうな
そんなの使わないのが多いから見過ごされていても不思議ではないかな
他にもあるんだったらDebianに持って行った方がいいぞ。自ら ism を否定してるとこなんだから
585デフォルトの名無しさん
2021/05/12(水) 03:54:18.34ID:QztuhdBY いや、Debianの明確な仕様だな。どこぞのスクリプトでも使ってるのほぼ見たことないから>>584って言ったけど、すまん
Debianがシェルスクリプト仕様として、POSIXから拡張した数少ない(5つ)うちの一つだな
その5つをあえて使うなら #!/bin/dash の方がいいかもね。Debianではその5つを使うなら #!/bin/sh でもいいとは言ってるけど(他のシェルでも対応してるからとかかな??)
Debianがシェルスクリプト仕様として、POSIXから拡張した数少ない(5つ)うちの一つだな
その5つをあえて使うなら #!/bin/dash の方がいいかもね。Debianではその5つを使うなら #!/bin/sh でもいいとは言ってるけど(他のシェルでも対応してるからとかかな??)
586デフォルトの名無しさん
2021/05/12(水) 08:14:16.52ID:rVJ0Zld2 dashismは5つもあるのかよw
じゃあだめだな。#!/bin/dashにしないといかんなwww
じゃあだめだな。#!/bin/dashにしないといかんなwww
587デフォルトの名無しさん
2021/05/12(水) 09:46:38.57ID:1N3VwigT >>580
> イミフ
> /bin/sh が dash なLinuxディストリは普通にあるし。なんでそんな環境をと言い出すのかイミフすぎ
その返しならイミフだろうなぁ
bash さえも入れたくない/Busyboxだけで極力少ないRAM/ROMで動作させる環境であって
PCやサーバではないよ
RAM が限られている環境だと1つでも bash スクリプトがあると dash と bash 両方で RAM を食って
しまうから、それならば /bin/sh を bash にしてしまった方がまだ軽いってなってしまう
そうなってくると「bash で書きたい人はシェバンに #!/bin/bash って書けば良いじゃん」で済まないわけ
で全部 dash 互換で書く必要がでてくる
シェバンに #!/bin/sh って書いてある他人が書いたスクリプトが bash 互換なのか dash 互換なのか
明示されていない以上、#!/bin/sh=dash 環境に移植する場合は書き直すか動作検証する必要がある
動作検証が終わったら #!/bin/dash って書きかえないと、そのファイルを引き継いだ人がまた
同じ作業を繰り返すことになるって考えよ
> イミフ
> /bin/sh が dash なLinuxディストリは普通にあるし。なんでそんな環境をと言い出すのかイミフすぎ
その返しならイミフだろうなぁ
bash さえも入れたくない/Busyboxだけで極力少ないRAM/ROMで動作させる環境であって
PCやサーバではないよ
RAM が限られている環境だと1つでも bash スクリプトがあると dash と bash 両方で RAM を食って
しまうから、それならば /bin/sh を bash にしてしまった方がまだ軽いってなってしまう
そうなってくると「bash で書きたい人はシェバンに #!/bin/bash って書けば良いじゃん」で済まないわけ
で全部 dash 互換で書く必要がでてくる
シェバンに #!/bin/sh って書いてある他人が書いたスクリプトが bash 互換なのか dash 互換なのか
明示されていない以上、#!/bin/sh=dash 環境に移植する場合は書き直すか動作検証する必要がある
動作検証が終わったら #!/bin/dash って書きかえないと、そのファイルを引き継いだ人がまた
同じ作業を繰り返すことになるって考えよ
588デフォルトの名無しさん
2021/05/12(水) 11:42:09.27ID:UQubkL4X >>586
何がもわからんくせに調べもしないくせに
ismの何が問題かもわからんくせに
自分が納得できないだけかよ、能書き小僧煩い
まあお前が納得できなくてそうするんだったら勝手にしてもいいぞ、その程度のことなんだろし
何がもわからんくせに調べもしないくせに
ismの何が問題かもわからんくせに
自分が納得できないだけかよ、能書き小僧煩い
まあお前が納得できなくてそうするんだったら勝手にしてもいいぞ、その程度のことなんだろし
589デフォルトの名無しさん
2021/05/12(水) 11:49:29.28ID:UQubkL4X >>587
ん?
>極論だが古典的なシステムでは /bin/sh は POSIX 準拠でさえないんだから
に対して、
>今時の /bin/sh の最低限度がPOSIXなんだよ
に対して、
>bash じゃなくて dash を使わざるを得ないような極小環境で現役なものはどこにあるの?
だよ?流れからイミフだな
で、今度は
>bash さえも入れたくない/Busyboxだけで極力少ないRAM/ROMで動作させる環境であって
と言い出すの?イミフのイミフだぞ(その後の延々としたのもw)
現在は、/bin/sh は POSIX shell というのが大勢、dash はそれになり得るというのが大勢
違うとお前ら個々が思うのは勝手にどうぞだが、それを理解しろと他人に求めるのは筋違いだな
そんなに自説に自信があるならDebianやfileのメーリングリストで問題提起してみ?w
ん?
>極論だが古典的なシステムでは /bin/sh は POSIX 準拠でさえないんだから
に対して、
>今時の /bin/sh の最低限度がPOSIXなんだよ
に対して、
>bash じゃなくて dash を使わざるを得ないような極小環境で現役なものはどこにあるの?
だよ?流れからイミフだな
で、今度は
>bash さえも入れたくない/Busyboxだけで極力少ないRAM/ROMで動作させる環境であって
と言い出すの?イミフのイミフだぞ(その後の延々としたのもw)
現在は、/bin/sh は POSIX shell というのが大勢、dash はそれになり得るというのが大勢
違うとお前ら個々が思うのは勝手にどうぞだが、それを理解しろと他人に求めるのは筋違いだな
そんなに自説に自信があるならDebianやfileのメーリングリストで問題提起してみ?w
590デフォルトの名無しさん
2021/05/12(水) 12:38:28.94ID:1N3VwigT591デフォルトの名無しさん
2021/05/12(水) 13:04:20.69ID:UQubkL4X592デフォルトの名無しさん
2021/05/12(水) 13:15:48.40ID:1N3VwigT >>591
そもそも 587 の内容は /bin/sh = ash/dash で頑張ってたけど
途中で /bin/sh = bash で行かざるを得ない/組込でも bash
入れざるを得ないなってなった事を説明しているわけで
589 の指摘を言われる所以は無い
君は同じスレのなかの時系列さえ読み解けない程読解力が低いんだよ
ちゃんと読めぐらいいわせろ
そもそも 587 の内容は /bin/sh = ash/dash で頑張ってたけど
途中で /bin/sh = bash で行かざるを得ない/組込でも bash
入れざるを得ないなってなった事を説明しているわけで
589 の指摘を言われる所以は無い
君は同じスレのなかの時系列さえ読み解けない程読解力が低いんだよ
ちゃんと読めぐらいいわせろ
593デフォルトの名無しさん
2021/05/12(水) 13:17:56.91ID:UQubkL4X594デフォルトの名無しさん
2021/05/12(水) 13:18:56.70ID:UQubkL4X595デフォルトの名無しさん
2021/05/12(水) 13:23:30.78ID:1N3VwigT >>593
いや、だから君は読解力がない/坊主憎けりゃ袈裟まで憎いで会話にならない、と
いや、だから君は読解力がない/坊主憎けりゃ袈裟まで憎いで会話にならない、と
596デフォルトの名無しさん
2021/05/12(水) 13:26:48.40ID:UQubkL4X >>593
そのレスから明らかにお前が自分の頭で思ったことが他人にもわかると思ってるな
>坊主憎けりゃ袈裟まで憎い
イミフwまた何を言っているんだか
だからお前は何を言いたいの?そんなイミフなこと言わずに書いてよ
自称読解力があるらしいのになんで俺に言っていること理解できないの?
(自称のそれは多分それは読解力ではなくて妄想力だと思われるけど)
そのレスから明らかにお前が自分の頭で思ったことが他人にもわかると思ってるな
>坊主憎けりゃ袈裟まで憎い
イミフwまた何を言っているんだか
だからお前は何を言いたいの?そんなイミフなこと言わずに書いてよ
自称読解力があるらしいのになんで俺に言っていること理解できないの?
(自称のそれは多分それは読解力ではなくて妄想力だと思われるけど)
597デフォルトの名無しさん
2021/05/12(水) 13:29:39.37ID:UQubkL4X598デフォルトの名無しさん
2021/05/12(水) 13:43:37.39ID:1N3VwigT >>597
>なんで俺の言っていること理解できないの
君は相手をディスる単語は使うが、なぜディスってるのかは説明しないんだから
理解してもらえないのは当然でしょ
「自分で調べろ」「バカと会話するだけ無駄」というレスのは解の一つではあるが
それを使うのであれば書き込んだ後はとっととスレ/板から去れよ
>なんで俺の言っていること理解できないの
君は相手をディスる単語は使うが、なぜディスってるのかは説明しないんだから
理解してもらえないのは当然でしょ
「自分で調べろ」「バカと会話するだけ無駄」というレスのは解の一つではあるが
それを使うのであれば書き込んだ後はとっととスレ/板から去れよ
599デフォルトの名無しさん
2021/05/12(水) 13:50:05.62ID:UQubkL4X /bin/sh が POSIX shell で汎用性があるスクリプトを書きたいというニーズはある
主に/大きなのはディストリかな
Debianは結構前からbashismを問題にしてる、/bin/sh が bash の頃から(でも、bashからdashに代えたのはUbuntuが先っぽいけど)
そういうある意味良き未来へw先導してるのがDebianなんだろし、そこで開発されてるdashにそれに沿った方向性を見るのは普通だと思うんだがな
全体的にwそういう方向性だろうし、俺はそれでいい、別に異論は無い、納得できるってだけなんだがな
ざっと見だけどなんかやたらbashという語が多いようだけど、bash好きなのかな?dashがPOSIXに近い、bashは/bin/shに合わないとか言う俺がbash嫌いだとでも思ってるのか?
>坊主憎けりゃ袈裟まで憎い
って。と妄想するけど?wまたいきなり何を言っているのかでいまだにわからんけど
主に/大きなのはディストリかな
Debianは結構前からbashismを問題にしてる、/bin/sh が bash の頃から(でも、bashからdashに代えたのはUbuntuが先っぽいけど)
そういうある意味良き未来へw先導してるのがDebianなんだろし、そこで開発されてるdashにそれに沿った方向性を見るのは普通だと思うんだがな
全体的にwそういう方向性だろうし、俺はそれでいい、別に異論は無い、納得できるってだけなんだがな
ざっと見だけどなんかやたらbashという語が多いようだけど、bash好きなのかな?dashがPOSIXに近い、bashは/bin/shに合わないとか言う俺がbash嫌いだとでも思ってるのか?
>坊主憎けりゃ袈裟まで憎い
って。と妄想するけど?wまたいきなり何を言っているのかでいまだにわからんけど
600デフォルトの名無しさん
2021/05/12(水) 13:51:57.48ID:UQubkL4X601デフォルトの名無しさん
2021/05/12(水) 14:44:21.97ID:1N3VwigT >>599
> /bin/sh が POSIX shell で汎用性があるスクリプトを書きたいというニーズはある
だからこそ #!/bin/sh じゃなくて #!/bin/dash って書こうよ
/bin/sh が /bin/bash なディストリが残ってる以上シェバンが #!/bin/sh のままじゃ
いつまでたっても bashism の問題は消えないんだ
コマンドがちょっと打てるだけでOSやシェル、その歴史なんて詳しくも無ければ
興味もない連中でさえシェルスクリプトはかけちゃうからとめられないんだ
>>600
その前段で既に話がかみ合ってないしこれは終わりにしよう
かみ合ってないのに話を終わらせなかった俺が悪かった
すまん
> /bin/sh が POSIX shell で汎用性があるスクリプトを書きたいというニーズはある
だからこそ #!/bin/sh じゃなくて #!/bin/dash って書こうよ
/bin/sh が /bin/bash なディストリが残ってる以上シェバンが #!/bin/sh のままじゃ
いつまでたっても bashism の問題は消えないんだ
コマンドがちょっと打てるだけでOSやシェル、その歴史なんて詳しくも無ければ
興味もない連中でさえシェルスクリプトはかけちゃうからとめられないんだ
>>600
その前段で既に話がかみ合ってないしこれは終わりにしよう
かみ合ってないのに話を終わらせなかった俺が悪かった
すまん
602デフォルトの名無しさん
2021/05/12(水) 14:56:03.65ID:LtxTQo1N >>601
>だからこそ #!/bin/sh じゃなくて #!/bin/dash って書こうよ
イミフ。何もわかってないじゃん。読解力あるんでしょ?w
>汎用性があるスクリプト
汎用性がわからんのか?可搬性と言えばいいのか?
だーかーらー、bashはbashismがあるから /bin/bash にしろって別の話だろうが。誰もそれに合わせたシェルを作らない/作れないんだから
お前のような迂闊さんのための話じゃないよ、#!/bin/sh なら POSIX shell で、それに近いのはdashっていう(何度繰り返したらわかるんだかw)
勉強不足でなんか困ったことがあってもそれは自責だな。お前でさえbashismって知っているのにw
>その前段で既に話がかみ合ってない
噛み合ってないもなんも、上のでさえお前は全然俺の言ってること理解してないじゃん
>>589ぐらいのイミフを噛み合うくらい簡単に説明できるだろうにw
まあ、いいよw(ナゾ)
>だからこそ #!/bin/sh じゃなくて #!/bin/dash って書こうよ
イミフ。何もわかってないじゃん。読解力あるんでしょ?w
>汎用性があるスクリプト
汎用性がわからんのか?可搬性と言えばいいのか?
だーかーらー、bashはbashismがあるから /bin/bash にしろって別の話だろうが。誰もそれに合わせたシェルを作らない/作れないんだから
お前のような迂闊さんのための話じゃないよ、#!/bin/sh なら POSIX shell で、それに近いのはdashっていう(何度繰り返したらわかるんだかw)
勉強不足でなんか困ったことがあってもそれは自責だな。お前でさえbashismって知っているのにw
>その前段で既に話がかみ合ってない
噛み合ってないもなんも、上のでさえお前は全然俺の言ってること理解してないじゃん
>>589ぐらいのイミフを噛み合うくらい簡単に説明できるだろうにw
まあ、いいよw(ナゾ)
603デフォルトの名無しさん
2021/05/12(水) 15:01:42.47ID:VEm96Egx 理想主義者は、互換シェルとかであきらめてないで、真shをつくればいいのに。
そうでなきゃ、いずれまた「dashism」が問題になるやろ。w
そうでなきゃ、いずれまた「dashism」が問題になるやろ。w
604デフォルトの名無しさん
2021/05/12(水) 15:04:52.73ID:LtxTQo1N 理想主義者でもないぞ現実主義だろうに
現実的に拡張可能な範囲での拡張なんだろう
POSIXと出されるとなんか変なこと思ってるのとちゃうか?
毒されすぎだろうここに居た/居るPOSIXなやつとかなんとか原理主義者にw
現実的に拡張可能な範囲での拡張なんだろう
POSIXと出されるとなんか変なこと思ってるのとちゃうか?
毒されすぎだろうここに居た/居るPOSIXなやつとかなんとか原理主義者にw
605デフォルトの名無しさん
2021/05/12(水) 15:06:17.30ID:1N3VwigT >>602
> イミフ。何もわかってないじゃん。読解力あるんでしょ?w
だからディスる(イミフと読解力あるんでしょで煽る)だけで終わらすんじゃなくて
どこが意味不明なのかちゃんと説明してよ
あとシェバンに #!/bin/sh と書いておきながらbash拡張で書く連中に対応する
方法については何度説明しても回答しないね
都合が悪い質問には一切回答しないでディスるだけとかいい加減飽きたぞ
> イミフ。何もわかってないじゃん。読解力あるんでしょ?w
だからディスる(イミフと読解力あるんでしょで煽る)だけで終わらすんじゃなくて
どこが意味不明なのかちゃんと説明してよ
あとシェバンに #!/bin/sh と書いておきながらbash拡張で書く連中に対応する
方法については何度説明しても回答しないね
都合が悪い質問には一切回答しないでディスるだけとかいい加減飽きたぞ
606デフォルトの名無しさん
2021/05/12(水) 15:11:48.53ID:LtxTQo1N607デフォルトの名無しさん
2021/05/12(水) 15:17:35.31ID:LtxTQo1N しっかし、自分から俺に「読解力」とか言い出しておいて、自分に返されたらディスる「だけ」とか。続いて書いてるのも読めないで
自己中も大概にしろと言いたい。もしくはよほど自分に効く言葉なのかな?そうだから俺に対して言い出したのかな?w
「読解力」なんてこれから相手に使わない方がいいよwイミフはイミフだから仕方がない自分から>>598すら説明できないそうだからw
と、余談も余談wだけど
自己中も大概にしろと言いたい。もしくはよほど自分に効く言葉なのかな?そうだから俺に対して言い出したのかな?w
「読解力」なんてこれから相手に使わない方がいいよwイミフはイミフだから仕方がない自分から>>598すら説明できないそうだからw
と、余談も余談wだけど
608デフォルトの名無しさん
2021/05/12(水) 15:23:26.30ID:LtxTQo1N609デフォルトの名無しさん
2021/05/12(水) 15:27:53.73ID:1N3VwigT610デフォルトの名無しさん
2021/05/12(水) 15:30:14.88ID:LtxTQo1N 頭悪そうなレス
それだけは言いたかったのね。なんでだろうねえw
それだけは言いたかったのね。なんでだろうねえw
611デフォルトの名無しさん
2021/05/12(水) 18:55:25.47ID:ZTB501LY まーたやってんのか
612デフォルトの名無しさん
2021/05/12(水) 20:05:28.08ID:zdSe0i8P 俺がいなくても同じことになるんやなw
613デフォルトの名無しさん
2021/05/13(木) 22:57:36.49ID:RCwmD/gq bash --posixが機能しない
614デフォルトの名無しさん
2021/05/16(日) 18:43:25.65ID:ijO7GKET >>472-473
#!/bin/sh
# POSIX準拠のシェルスクリプトはPythonスクリプトよりも寿命が長そうだからいいね
# Chrome拡張のLanguage Learning with Youtube BETA(提供元: Dioco)をインストール
# 字幕対応の動画ページを開いてキーボードのCキーを押す
# Fキーを押して全画面表示
# 画面下、動画の再生時間の横にOFFと表示されているアイコンをクリック
# 英語の字幕ではなくローマ字が表示される場合は、画面下の歯車アイコンをクリックして字幕設定を「英語>>日本語(自動生成)」から「英語(自動生成)」に変更
# 字幕の読み込み終了後、画面右上にある右矢印アイコン(エクスポート)をクリック
# Excelを選択してエクスポートをクリック
# 字幕ファイルのダウンロードが終わったらシェルスクリプトを実行
# pip install pandas openpyxl
python3 -c 'import glob, os, pandas; \
get_filename = glob.glob(os.getenv("HOME") + "/Downloads/*.xlsx"); \
read_xlsx = pandas.read_excel(get_filename[0], engine="openpyxl"); \
read_xlsx.to_csv(os.getenv("HOME") + "/Downloads/time_en_jp.csv", index=None, header=True)'
# cut: 2列目を抽出 | sed: 改行文字を空白スペースに変換
cat "$HOME/Downloads/time_en_jp.csv" | cut --delimiter="," --fields="2" | sed -z "s/\n/ /g" > "$HOME/Documents/en.txt"
cat "$HOME/Downloads/time_en_jp.csv" | cut -d "," -f 1,2 >> "$HOME/Documents/en.txt"
cat "$HOME/Downloads/time_en_jp.csv" | cut -d "," -f 1,3 >> "$HOME/Documents/en.txt"
mv $HOME/Downloads/*.xlsx ~/.local/share/Trash/files
google-chrome "$HOME/Documents/en.txt" \
$(echo "231c177a35b47c080030/smeti/4444nasam/moc.atiiq//:sptth" | rev) \
$(echo "/1873001261/piv4swen/igc.daer/tset/ten.hc5.ibeh//:sptth" | rev)
#!/bin/sh
# POSIX準拠のシェルスクリプトはPythonスクリプトよりも寿命が長そうだからいいね
# Chrome拡張のLanguage Learning with Youtube BETA(提供元: Dioco)をインストール
# 字幕対応の動画ページを開いてキーボードのCキーを押す
# Fキーを押して全画面表示
# 画面下、動画の再生時間の横にOFFと表示されているアイコンをクリック
# 英語の字幕ではなくローマ字が表示される場合は、画面下の歯車アイコンをクリックして字幕設定を「英語>>日本語(自動生成)」から「英語(自動生成)」に変更
# 字幕の読み込み終了後、画面右上にある右矢印アイコン(エクスポート)をクリック
# Excelを選択してエクスポートをクリック
# 字幕ファイルのダウンロードが終わったらシェルスクリプトを実行
# pip install pandas openpyxl
python3 -c 'import glob, os, pandas; \
get_filename = glob.glob(os.getenv("HOME") + "/Downloads/*.xlsx"); \
read_xlsx = pandas.read_excel(get_filename[0], engine="openpyxl"); \
read_xlsx.to_csv(os.getenv("HOME") + "/Downloads/time_en_jp.csv", index=None, header=True)'
# cut: 2列目を抽出 | sed: 改行文字を空白スペースに変換
cat "$HOME/Downloads/time_en_jp.csv" | cut --delimiter="," --fields="2" | sed -z "s/\n/ /g" > "$HOME/Documents/en.txt"
cat "$HOME/Downloads/time_en_jp.csv" | cut -d "," -f 1,2 >> "$HOME/Documents/en.txt"
cat "$HOME/Downloads/time_en_jp.csv" | cut -d "," -f 1,3 >> "$HOME/Documents/en.txt"
mv $HOME/Downloads/*.xlsx ~/.local/share/Trash/files
google-chrome "$HOME/Documents/en.txt" \
$(echo "231c177a35b47c080030/smeti/4444nasam/moc.atiiq//:sptth" | rev) \
$(echo "/1873001261/piv4swen/igc.daer/tset/ten.hc5.ibeh//:sptth" | rev)
615デフォルトの名無しさん
2021/05/16(日) 22:22:55.41ID:ZJ9kaJzK CSV 形式に対して、cut は機能するのか?
データ中に、カンマを含んでいても、正常に抜き出せるのか?
データ中に、カンマを含んでいても、正常に抜き出せるのか?
616デフォルトの名無しさん
2021/05/16(日) 22:34:03.36ID:vtPLFS21 >>615
含んでないことを前提にできるならええがな。
含んでないことを前提にできるならええがな。
617デフォルトの名無しさん
2021/05/17(月) 00:20:52.65ID:HtlvZdi5 https://twitter.com/col_richie/status/1393925115386101766
> 「POSIX原理主義とはPOSIX文書に従うこと」と思われがちだが、
> 我々の定義は少し違う。「POSIX文書が言わんとすることを読み取り、実践する」だ
>
> 例えば、日本国憲法24条の「婚姻は両性の同意のみに基づいて」を、
> 同性婚時代にどう解釈すべきかのようなもの。元の文章に捕らわれ思考停止してはいけない
ほんと、こいつって適当なことばかり言ってるよな
とうとうPOSIX原理主義はPOSIXとは関係ない。POSIXが書いてないことを
独自解釈して自分の都合のいいように言い換えてるって認めちゃってる。
その「我々の定義」は「POSIX原理主義」のどこにも書いてないと言うね
そしていつものように、全く関係ないものにたとえて
虎の威を借る狐作戦
一貫性がない、思いつきだけで発言してる
https://twitter.com/5chan_nel (5ch newer account)
> 「POSIX原理主義とはPOSIX文書に従うこと」と思われがちだが、
> 我々の定義は少し違う。「POSIX文書が言わんとすることを読み取り、実践する」だ
>
> 例えば、日本国憲法24条の「婚姻は両性の同意のみに基づいて」を、
> 同性婚時代にどう解釈すべきかのようなもの。元の文章に捕らわれ思考停止してはいけない
ほんと、こいつって適当なことばかり言ってるよな
とうとうPOSIX原理主義はPOSIXとは関係ない。POSIXが書いてないことを
独自解釈して自分の都合のいいように言い換えてるって認めちゃってる。
その「我々の定義」は「POSIX原理主義」のどこにも書いてないと言うね
そしていつものように、全く関係ないものにたとえて
虎の威を借る狐作戦
一貫性がない、思いつきだけで発言してる
https://twitter.com/5chan_nel (5ch newer account)
618デフォルトの名無しさん
2021/05/17(月) 03:39:44.44ID:j+9HqG9Y 見落としてた
Language Learning with Youtube BETAが出力する字幕にカンマが表示されることがないから
cutコマンドを使ってCSVファイルのn列目フィールドを抽出できてる
sepオプションで区切り文字に'~'を指定してcomma-separated values (csv)ならぬpython-separated value(psv)ファイル
にすれば英文データ中にカンマを含んでいても正常に抽出できるよ
read_xlsx.to_csv(os.getenv("HOME") + "/Downloads/time_en_jp.csv", index=None, header=True, sep='~')'
Language Learning with Youtube BETAが出力する字幕にカンマが表示されることがないから
cutコマンドを使ってCSVファイルのn列目フィールドを抽出できてる
sepオプションで区切り文字に'~'を指定してcomma-separated values (csv)ならぬpython-separated value(psv)ファイル
にすれば英文データ中にカンマを含んでいても正常に抽出できるよ
read_xlsx.to_csv(os.getenv("HOME") + "/Downloads/time_en_jp.csv", index=None, header=True, sep='~')'
619デフォルトの名無しさん
2021/05/19(水) 10:30:30.70ID:nuPY3Cay620デフォルトの名無しさん
2021/05/19(水) 11:52:01.66ID:ZyjXFBY0 csvはほんとギルティ、特にクオートしてるやつ…
(["'])[^"']*\1やその,版をベースに個別にチューンしてなんとかならん事もないけど
普通に高級ライブラリ(pwshのパーサとか)呼んで見つけ次第tsvに浄化、常にtsvを扱うのがベストプラクティス
タブが嫌ならascii c0 separator svでも何でもcsvよりはマシ
(["'])[^"']*\1やその,版をベースに個別にチューンしてなんとかならん事もないけど
普通に高級ライブラリ(pwshのパーサとか)呼んで見つけ次第tsvに浄化、常にtsvを扱うのがベストプラクティス
タブが嫌ならascii c0 separator svでも何でもcsvよりはマシ
621デフォルトの名無しさん
2021/05/19(水) 12:10:40.76ID:/qVnw8Ux テキストにタブが含まれてたら同じやろ。
結局、ダメなときはダメ。
しゃあない。
結局、ダメなときはダメ。
しゃあない。
622デフォルトの名無しさん
2021/05/19(水) 12:15:24.52ID:nuPY3Cay >>620
つか、CSVに限らず、シェルスクリプトで扱うなら、とにかくTSVでしょう。
だから、他のデータはとにかくまずTSVにしてしまう。
それさえ出来てしまえば、逆に後はどうにでもなるw
またシェルスクリプトでなくても、タブは単独の区切り文字としてはベスト。
まずよっぽどでない限り、フィールドの内容には出てこないから。
つか、CSVに限らず、シェルスクリプトで扱うなら、とにかくTSVでしょう。
だから、他のデータはとにかくまずTSVにしてしまう。
それさえ出来てしまえば、逆に後はどうにでもなるw
またシェルスクリプトでなくても、タブは単独の区切り文字としてはベスト。
まずよっぽどでない限り、フィールドの内容には出てこないから。
623デフォルトの名無しさん
2021/05/19(水) 12:28:25.62ID:ZROa3PFa >まずよっぽどでない限り、フィールドの内容には出てこないから
一番使われたであろうソースコード記述でもタブを嫌いスペースが主流だったりするしな
一番使われたであろうソースコード記述でもタブを嫌いスペースが主流だったりするしな
624デフォルトの名無しさん
2021/05/19(水) 12:40:24.36ID:ZyjXFBY0 sed s/^I/taaab/gとかエスケープしとけばいいんでない?(^Iは本当のタブ文字)
sedはc風のエスケープも認識した気がする、クオートしないとshに食われるが
s/'\t'/taaab/gでも多分大丈夫かな
sedはc風のエスケープも認識した気がする、クオートしないとshに食われるが
s/'\t'/taaab/gでも多分大丈夫かな
625デフォルトの名無しさん
2021/05/19(水) 12:45:00.65ID:nuPY3Cay626デフォルトの名無しさん
2021/05/19(水) 12:45:04.60ID:ZROa3PFa そんな話してないよ
627デフォルトの名無しさん
2021/05/19(水) 12:46:44.79ID:ZROa3PFa フィールドの内容に出てくるのを想定した場合の話か
ごめんちゃい
ごめんちゃい
628デフォルトの名無しさん
2021/05/19(水) 12:51:26.96ID:ZyjXFBY0 値内のタブは代わりの文字に置き換えて、tsvのデリミタにホントのタブ使うってことね
catやらで書き出してもちゃんとテーブルに見える利点は大きい(適宜タブ幅整えれば)
ascii C0のセパレータは認識しないアプリ多いし、vimで開くとかcat -vteしないと正体不明なので筋が悪いか
自分が何使ったか忘れて頭を捻ることになる
taaabでも何でも良いが、タブであることが一目で分かれば便利
その用途に文字列"\t"が標準的な大体記法だからといって、これに置き換えるのは避けたほうがいいかも
どこかで勝手に解釈されかねない
C0のセパレータがまさにdsvの為の文字なんだけれどもなあ…
扱いづらい
catやらで書き出してもちゃんとテーブルに見える利点は大きい(適宜タブ幅整えれば)
ascii C0のセパレータは認識しないアプリ多いし、vimで開くとかcat -vteしないと正体不明なので筋が悪いか
自分が何使ったか忘れて頭を捻ることになる
taaabでも何でも良いが、タブであることが一目で分かれば便利
その用途に文字列"\t"が標準的な大体記法だからといって、これに置き換えるのは避けたほうがいいかも
どこかで勝手に解釈されかねない
C0のセパレータがまさにdsvの為の文字なんだけれどもなあ…
扱いづらい
629デフォルトの名無しさん
2021/05/19(水) 12:55:58.11ID:ZyjXFBY0630デフォルトの名無しさん
2021/05/19(水) 12:59:10.19ID:nuPY3Cay >>628
> その用途に文字列"\t"が標準的な大体記法だからといって、これに置き換えるのは避けたほうがいいかも
うん。それはまずい。
そも普通のコマンドで\t解釈しないのはgrepぐらいのものだと思う。
(これ、ほんと凄い罠なんだよw)
> その用途に文字列"\t"が標準的な大体記法だからといって、これに置き換えるのは避けたほうがいいかも
うん。それはまずい。
そも普通のコマンドで\t解釈しないのはgrepぐらいのものだと思う。
(これ、ほんと凄い罠なんだよw)
631デフォルトの名無しさん
2021/05/19(水) 13:09:34.54ID:nuPY3Cay >>629
まあ、それなら<-tab->とか、なんなら((tab))とか、[[#tab#]]とかでも、いいけどw
んでもtaaabとかはやめようよ、だって見やすくないし、わかりやすくないし、それこそフィールド値として出てきかねない(まあ、スペースが入ってないとかのタイポだろうけれども)しw
まあ、それなら<-tab->とか、なんなら((tab))とか、[[#tab#]]とかでも、いいけどw
んでもtaaabとかはやめようよ、だって見やすくないし、わかりやすくないし、それこそフィールド値として出てきかねない(まあ、スペースが入ってないとかのタイポだろうけれども)しw
632デフォルトの名無しさん
2021/05/19(水) 13:11:35.15ID:EPM7ZqxF いっそ絵文字にしちゃえば
633デフォルトの名無しさん
2021/05/19(水) 13:16:05.73ID:ZyjXFBY0 >>630,631
覚えておく、ありがと
あと標準ツールで\記法を解釈しないのはedだね
edの直系子孫のgrepとsedで異なるのは興味深いね
結局はオレオレ記法に頼るしかないのな…
tsvほどポータブルでないが、bash等配列サポートbshならdeclare(typeset) -pで再読み込み可能なようにダンプしてくれるね
内部的に使うならこれもありかな
覚えておく、ありがと
あと標準ツールで\記法を解釈しないのはedだね
edの直系子孫のgrepとsedで異なるのは興味深いね
結局はオレオレ記法に頼るしかないのな…
tsvほどポータブルでないが、bash等配列サポートbshならdeclare(typeset) -pで再読み込み可能なようにダンプしてくれるね
内部的に使うならこれもありかな
634デフォルトの名無しさん
2021/05/19(水) 13:20:50.01ID:isp/WQPk >>622
> またシェルスクリプトでなくても、タブは単独の区切り文字としてはベスト。
シェルスクリプトにおいてはタブ区切りはベストではない。
なぜなら空白系文字の一つで特殊な処理が行われるから。
foo,bar,baz という CSVは IFS="," read -r f1 f2 f3 で正しく読み込める。
foo,,baz でも正しく、f1="foo"、f2=""、f3="baz" と読み込める。
しかしこれがタブ区切り(タブ文字=<TAB>とする)であった場合、
空白系文字が連続している場合は一つとして扱われるという例外ルールにより、
foo<TAB><TAB>baz という CSV は IFS=<TAB> read -r f1 f2 f3 と読み込むと、
f1="foo"、f2="baz"、f3="" と間違って読み込まれる。
> またシェルスクリプトでなくても、タブは単独の区切り文字としてはベスト。
シェルスクリプトにおいてはタブ区切りはベストではない。
なぜなら空白系文字の一つで特殊な処理が行われるから。
foo,bar,baz という CSVは IFS="," read -r f1 f2 f3 で正しく読み込める。
foo,,baz でも正しく、f1="foo"、f2=""、f3="baz" と読み込める。
しかしこれがタブ区切り(タブ文字=<TAB>とする)であった場合、
空白系文字が連続している場合は一つとして扱われるという例外ルールにより、
foo<TAB><TAB>baz という CSV は IFS=<TAB> read -r f1 f2 f3 と読み込むと、
f1="foo"、f2="baz"、f3="" と間違って読み込まれる。
635デフォルトの名無しさん
2021/05/19(水) 13:23:02.17ID:ZyjXFBY0 内部的というか、個人的に、だな
個人的にならそれこそモダンなパーサ使えよって話だし、declare等中途半端なハックはやめておこう
ごめん
個人的にならそれこそモダンなパーサ使えよって話だし、declare等中途半端なハックはやめておこう
ごめん
636デフォルトの名無しさん
2021/05/19(水) 13:24:53.12ID:isp/WQPk 名前は忘れたけど、シェルスクリプトでCSVを扱うためのライブラリかコマンドを見かけたことがある
awk実装のパーサーを使ってたはず。githubでawk csv で検索して見つけたんだったかな?
まあいくつかあったはず。
awk実装のパーサーを使ってたはず。githubでawk csv で検索して見つけたんだったかな?
まあいくつかあったはず。
637デフォルトの名無しさん
2021/05/19(水) 13:27:02.65ID:isp/WQPk たしかシェルスクリプトで扱いやすいように区切り文字を変換する機能とかエスケープする機能とかとかがあったはず
638デフォルトの名無しさん
2021/05/19(水) 13:34:02.00ID:ZyjXFBY0 空白文字としてシェルにパース(単語分割)される、って性質もシェルスクリプティングにおいて便利な場面(forで回したり)は多々あるので一概に悪いとは思わないよ
スペースあるならtsvは避けるとか、IFSをコマンド前置代入で弄るとか、ハッキリ区別したいなら値をクオートしてワンステップ分割を遅延させたりとか
tsvは厳密性と利便性の真ん中の立ち位置だね
シェルスクリプティングにおいて、総合的に見ていい形式だと思うよ、(いざバグるその時までは…)
スペースあるならtsvは避けるとか、IFSをコマンド前置代入で弄るとか、ハッキリ区別したいなら値をクオートしてワンステップ分割を遅延させたりとか
tsvは厳密性と利便性の真ん中の立ち位置だね
シェルスクリプティングにおいて、総合的に見ていい形式だと思うよ、(いざバグるその時までは…)
639デフォルトの名無しさん
2021/05/19(水) 13:45:54.49ID:nuPY3Cay >>632
まあ今時のシェル環境なら絵文字も実際なしじゃないと個人的には思う。
ただ、滅多にないといってもポータビリティ損うのは嫌だから自分はやらないがw
>>633
edかw
ありがとう、覚えておく。
>>634
いや、タブが不適切な場合がありうることは、端から除外してないよ。
標準ツールの実装や文字としての意味合いなどから考えて、ベストだと言ってるので、
そういう特殊な状況がありうることは指摘されるまでもないよw
>>636
awk実装なら欲しい、それw
csvparseなんてコマンドも昔sourceforgeにあって、一時期入れてた。C実装だったので、
でかいファイルを扱うときに重宝したけど、あんまりできがよくなかったんで、今は…
あとC++が書けるなら、boostライブラリ(11標準に入ってるかも)でエスケープ処理できる
パーサを簡単に書けるやつがあったんで、それで挑戦って手もあるかもw
自分は、そんなことを考えているうちに、>>619のq(-text-as-data)を見付けてしまったので、
以後はこれに頼ってるw
まあ今時のシェル環境なら絵文字も実際なしじゃないと個人的には思う。
ただ、滅多にないといってもポータビリティ損うのは嫌だから自分はやらないがw
>>633
edかw
ありがとう、覚えておく。
>>634
いや、タブが不適切な場合がありうることは、端から除外してないよ。
標準ツールの実装や文字としての意味合いなどから考えて、ベストだと言ってるので、
そういう特殊な状況がありうることは指摘されるまでもないよw
>>636
awk実装なら欲しい、それw
csvparseなんてコマンドも昔sourceforgeにあって、一時期入れてた。C実装だったので、
でかいファイルを扱うときに重宝したけど、あんまりできがよくなかったんで、今は…
あとC++が書けるなら、boostライブラリ(11標準に入ってるかも)でエスケープ処理できる
パーサを簡単に書けるやつがあったんで、それで挑戦って手もあるかもw
自分は、そんなことを考えているうちに、>>619のq(-text-as-data)を見付けてしまったので、
以後はこれに頼ってるw
640デフォルトの名無しさん
2021/05/19(水) 16:24:49.16ID:MofjHbZu641デフォルトの名無しさん
2021/05/19(水) 17:37:46.30ID:NrDqbXHa while IFS=$'¥t' readでTSV読むと空文字が飛ばされるんだけど
どうしたらいいの?
どうしたらいいの?
642デフォルトの名無しさん
2021/05/19(水) 18:07:23.61ID:isp/WQPk 絶対入らないであろう制御文字とか別の文字にsedで置換してから処理すればいいんじゃね?
644デフォルトの名無しさん
2021/05/20(木) 07:49:17.82ID:46+G9eEq > 日本語では、「分かる(understand)」と「分ける(divide)」とは同じ字を充てます。つまり理解することと分類するということは同義です。
???
英語では、「分かる(understand)」と「分ける(divide)」とは異なる単語を充てます。つまり理解することと分類するということは全く別です。
となるのでは?w
???
英語では、「分かる(understand)」と「分ける(divide)」とは異なる単語を充てます。つまり理解することと分類するということは全く別です。
となるのでは?w
645デフォルトの名無しさん
2021/05/20(木) 12:53:36.47ID:ensXejIN divide も「分類する」という意味に取ることはできる。分類が理解ならば。
646デフォルトの名無しさん
2021/05/20(木) 13:17:23.56ID:ALA05zio 綴りが同じでも意味が違う場合がある
意味が同じでも別の綴りで表現することもある
言葉の常識だな
意味が同じでも別の綴りで表現することもある
言葉の常識だな
647デフォルトの名無しさん
2021/05/22(土) 08:35:59.42ID:eaqGXRkT >>618だとうまくいかないので訂正する
read_xlsx.to_csv(os.getenv("HOME") + "/Downloads/time_en_jp.csv", index=None, header=True, sep='~')'
ではなくて
read_xlsx.to_csv(os.getenv("HOME") + "/Downloads/time_en_jp.csv", index=None, header=True, sep="~")'
read_xlsx.to_csv(os.getenv("HOME") + "/Downloads/time_en_jp.csv", index=None, header=True, sep='~')'
ではなくて
read_xlsx.to_csv(os.getenv("HOME") + "/Downloads/time_en_jp.csv", index=None, header=True, sep="~")'
648デフォルトの名無しさん
2021/05/22(土) 08:45:20.64ID:eaqGXRkT #!/bin/sh
# >>614の拡張機能を使ってダウンロードした英語字幕をDeepLで翻訳するスクリプト
# 翻訳すると短いなと思ったら英文の適当なところに改行を入れる
# . $HOME/venv/english/bin/activate
python3 -c 'import glob, os, pandas; \
get_filename = glob.glob(os.getenv("HOME") + "/Downloads/*.xlsx"); \
read_xlsx = pandas.read_excel(get_filename[0], engine="openpyxl"); \
read_xlsx.to_csv(os.getenv("HOME") + "/Downloads/time_en_jp.csv", index=None, header=True, sep="~"); \
read_xlsx.to_html(os.getenv("HOME") + "/Downloads/time_en_jp.html", index=None, header=True)'
mkdir --parents $HOME/Downloads/Excel; mv $HOME/Downloads/*.xlsx "$HOME/Downloads/Excel"
xdg-open "$HOME/Downloads/time_en_jp.html"
cat "$HOME/Downloads/time_en_jp.csv" | cut --delimiter='~' --fields='2' > "$HOME/Downloads/en.txt"
# pandoc "$HOME/Downloads/en.txt" -o "$HOME/Downloads/en.docx"
# 英語字幕の文字数は30分動画で約2万
en_05k=$( cat "$HOME/Downloads/en.txt" | sed -z "s/\n/ /g" | cut --characters="1-5000" )
en_10k=$( cat "$HOME/Downloads/en.txt" | sed -z "s/\n/ /g" | cut -c "4900-9900" )
for subtitle in "$en_05k" "$en_10k" "$en_15k" "$en_20k"; do
if [ -z "$subtitle" ]; then break
else xdg-open $( echo '/pj/ne#rotalsnart/moc.lpeed.www//:sptth' | rev )"$subtitle"; sleep 21; fi; done
# >>614の拡張機能を使ってダウンロードした英語字幕をDeepLで翻訳するスクリプト
# 翻訳すると短いなと思ったら英文の適当なところに改行を入れる
# . $HOME/venv/english/bin/activate
python3 -c 'import glob, os, pandas; \
get_filename = glob.glob(os.getenv("HOME") + "/Downloads/*.xlsx"); \
read_xlsx = pandas.read_excel(get_filename[0], engine="openpyxl"); \
read_xlsx.to_csv(os.getenv("HOME") + "/Downloads/time_en_jp.csv", index=None, header=True, sep="~"); \
read_xlsx.to_html(os.getenv("HOME") + "/Downloads/time_en_jp.html", index=None, header=True)'
mkdir --parents $HOME/Downloads/Excel; mv $HOME/Downloads/*.xlsx "$HOME/Downloads/Excel"
xdg-open "$HOME/Downloads/time_en_jp.html"
cat "$HOME/Downloads/time_en_jp.csv" | cut --delimiter='~' --fields='2' > "$HOME/Downloads/en.txt"
# pandoc "$HOME/Downloads/en.txt" -o "$HOME/Downloads/en.docx"
# 英語字幕の文字数は30分動画で約2万
en_05k=$( cat "$HOME/Downloads/en.txt" | sed -z "s/\n/ /g" | cut --characters="1-5000" )
en_10k=$( cat "$HOME/Downloads/en.txt" | sed -z "s/\n/ /g" | cut -c "4900-9900" )
for subtitle in "$en_05k" "$en_10k" "$en_15k" "$en_20k"; do
if [ -z "$subtitle" ]; then break
else xdg-open $( echo '/pj/ne#rotalsnart/moc.lpeed.www//:sptth' | rev )"$subtitle"; sleep 21; fi; done
649デフォルトの名無しさん
2021/05/22(土) 09:02:39.62ID:QJRx2RSn クソコード邪魔すぎ何だこりゃ?
650デフォルトの名無しさん
2021/05/22(土) 11:03:50.76ID:eaqGXRkT >>648
#!/bin/sh
# クリップボードにコピーしたurlをファイルに追記
CLIPB=$(xclip -o)
mkdir --parents $HOME/Pictures/ss
echo $CLIPB >> $HOME/Pictures/ss/urls.txt
#!/bin/sh
# 追記したページのスクリーンショットを取得後にログを残してurls.txtを初期化、閲覧編集用のアプリを起動
mkdir -p $HOME/Pictures/ss
while read url
# 書き込む余白を多く取りたければ1280以上の横幅を指定
do google-chrome --headless --disable-gpu --hide-scrollbars --window-size=1280,15210 \
--screenshot="$HOME/Pictures/ss/ss$(date +"%H%M%S").png" "$url"
done < "$HOME/Pictures/ss/urls.txt"
date >> "$HOME/Pictures/ss/food.log"
cat "$HOME/Pictures/ss/urls.txt" >> "$HOME/Pictures/ss/food.log"
: > "$HOME/Pictures/ss/urls.txt"
wine "$HOME/irfanview/i_view64.exe" &
xdg-open $( echo '=q?/moc.ogkcudkcud//:sptth' | rev )"!hatebu あとで読む"
#!/bin/sh
# クリップボードにコピーしたurlをファイルに追記
CLIPB=$(xclip -o)
mkdir --parents $HOME/Pictures/ss
echo $CLIPB >> $HOME/Pictures/ss/urls.txt
#!/bin/sh
# 追記したページのスクリーンショットを取得後にログを残してurls.txtを初期化、閲覧編集用のアプリを起動
mkdir -p $HOME/Pictures/ss
while read url
# 書き込む余白を多く取りたければ1280以上の横幅を指定
do google-chrome --headless --disable-gpu --hide-scrollbars --window-size=1280,15210 \
--screenshot="$HOME/Pictures/ss/ss$(date +"%H%M%S").png" "$url"
done < "$HOME/Pictures/ss/urls.txt"
date >> "$HOME/Pictures/ss/food.log"
cat "$HOME/Pictures/ss/urls.txt" >> "$HOME/Pictures/ss/food.log"
: > "$HOME/Pictures/ss/urls.txt"
wine "$HOME/irfanview/i_view64.exe" &
xdg-open $( echo '=q?/moc.ogkcudkcud//:sptth' | rev )"!hatebu あとで読む"
651デフォルトの名無しさん
2021/05/22(土) 11:11:15.99ID:/00w7bM8 よくわからんけどrevは5chの規制避けかな
652デフォルトの名無しさん
2021/05/23(日) 18:35:11.52ID:TMBaqh21 >>650
#!/bin/sh
# 区切り文字が^のcsvファイルから3列目を抽出
while IFS='^' f1 f2 f3
do
echo "$f3"
done < $HOME/Documents/file.csv
echo -n "$IFS"
xdg-open $( echo '/pj.oc.ihcinuhc.www//:sptth' | rev )"article/215479"
#!/bin/sh
# 区切り文字が^のcsvファイルから3列目を抽出
while IFS='^' f1 f2 f3
do
echo "$f3"
done < $HOME/Documents/file.csv
echo -n "$IFS"
xdg-open $( echo '/pj.oc.ihcinuhc.www//:sptth' | rev )"article/215479"
653デフォルトの名無しさん
2021/06/02(水) 23:41:48.90ID:CFdyIdLe スクリプトのシバンで#!/bin/bashを使うのに抵抗があっていつも#!/bin/shと書くんだけど
#!/bin/shは実際何が呼ばれてるか確認する方法ある?
#!/bin/shは実際何が呼ばれてるか確認する方法ある?
654デフォルトの名無しさん
2021/06/03(木) 02:30:25.50ID:Xmy19u29 file /bin/sh
655デフォルトの名無しさん
2021/06/03(木) 02:36:09.69ID:Ers5yK+g Ubuntu 18.04 では、
file /bin/sh
/bin/sh: symbolic link to dash
readlink -f /bin/sh
/bin/dash
ls@ -l /bin/sh
lrwxrwxrwx 1 root root 4 5月 21 2019 /bin/sh -> dash
ただし、ls の特定のオプションは書き込めないので、@を入れました
ll /bin/sh
lrwxrwxrwx 1 root root 4 5月 21 2019 /bin/sh -> dash*
ただし、ll は、~/.bashrc 内で定義されているエイリアス。
alias ll='ls -alF'
file /bin/sh
/bin/sh: symbolic link to dash
readlink -f /bin/sh
/bin/dash
ls@ -l /bin/sh
lrwxrwxrwx 1 root root 4 5月 21 2019 /bin/sh -> dash
ただし、ls の特定のオプションは書き込めないので、@を入れました
ll /bin/sh
lrwxrwxrwx 1 root root 4 5月 21 2019 /bin/sh -> dash*
ただし、ll は、~/.bashrc 内で定義されているエイリアス。
alias ll='ls -alF'
656デフォルトの名無しさん
2021/06/03(木) 03:13:59.17ID:Xmy19u29 dashいいよね
time /bin/sh looooop.sh
という手も…
制御構文と算術並べて回すとbashの6倍〜くらい速い
もしbashのshモードなら、あえてshとして呼ぶ意味は多分ない
shにリネームしても--posixで呼んでも速くなったりはしないので
単に機能制限するだけ
time /bin/sh looooop.sh
という手も…
制御構文と算術並べて回すとbashの6倍〜くらい速い
もしbashのshモードなら、あえてshとして呼ぶ意味は多分ない
shにリネームしても--posixで呼んでも速くなったりはしないので
単に機能制限するだけ
657デフォルトの名無しさん
2021/06/03(木) 04:24:00.37ID:R+Tga64P bashの--posixなら多分機能制限しない
posix準拠の動きに変えるだけ
posix準拠の動きに変えるだけ
658デフォルトの名無しさん
2021/06/03(木) 14:26:02.44ID:jx+ISKqI >>656
なくはない。
何らかのbシェルベースのシェルが起動するコトを期待する、と言う意味がある。
そこがつまり#!/bin/dashと書くな、という理由だよ。
ポータビリティというのは結局スクリプトを書く側が担保してやるしかないものさ。
なくはない。
何らかのbシェルベースのシェルが起動するコトを期待する、と言う意味がある。
そこがつまり#!/bin/dashと書くな、という理由だよ。
ポータビリティというのは結局スクリプトを書く側が担保してやるしかないものさ。
659653
2021/06/03(木) 19:13:59.15ID:smLJNlVA こんなん出ました
dashだそうです
root@rock64:~# file /bin/sh
-bash: file: command not found
root@rock64:~# readlink -f /bin/sh
/bin/dash
dashだそうです
root@rock64:~# file /bin/sh
-bash: file: command not found
root@rock64:~# readlink -f /bin/sh
/bin/dash
660デフォルトの名無しさん
2021/06/03(木) 23:17:43.27ID:jx+ISKqI661デフォルトの名無しさん
2021/06/04(金) 00:17:07.85ID:3WbYfw6G $ apt-file search -x '(/usr)?/bin/file$'
file: /usr/bin/file
file: /usr/bin/file
662デフォルトの名無しさん
2021/06/04(金) 18:08:41.76ID:gVy5NQ7F >>660
最近はクロス環境とか多いからfileは結構出番ないすか? これどれのバイナリー? みたいな
最近はクロス環境とか多いからfileは結構出番ないすか? これどれのバイナリー? みたいな
663デフォルトの名無しさん
2021/06/04(金) 19:10:54.58ID:3cSNOYzv クロス開発で異なるプラットフォームのバイナリが
バラバラにばらまかれて調べないといけなくなる状況がわからん
ちゃんとディレクトリとかファイル名とかでわけて
混ざらないように作れよ
適当にやってるからわからなくなるんだよ
バラバラにばらまかれて調べないといけなくなる状況がわからん
ちゃんとディレクトリとかファイル名とかでわけて
混ざらないように作れよ
適当にやってるからわからなくなるんだよ
664653
2021/06/04(金) 22:37:23.88ID:jwl5S2DP665デフォルトの名無しさん
2021/06/04(金) 22:55:40.20ID:n50ApA7d666デフォルトの名無しさん
2021/06/05(土) 00:08:43.42ID:wpsN2NXu これを機にPOSIX準拠を目指すといいでござる
ただしPOSIX原理主義だけは見てはいけないでござる
あれはエセPOSX宗教でござる
ただしPOSIX原理主義だけは見てはいけないでござる
あれはエセPOSX宗教でござる
667デフォルトの名無しさん
2021/06/06(日) 19:16:29.89ID:JMlL8BLG プログラムの勉強のためにshellのコマンド(ex cd・cp・find ...etc)が
どう書かれているか中身を見たいのですが、バイナリのため文字化けしてて見れません。
これを人が読めるように戻すにはどうしたらよいでしょうか?
またshellのコマンドはプログラム言語は何で書かれているのでしょうか?
どう書かれているか中身を見たいのですが、バイナリのため文字化けしてて見れません。
これを人が読めるように戻すにはどうしたらよいでしょうか?
またshellのコマンドはプログラム言語は何で書かれているのでしょうか?
668デフォルトの名無しさん
2021/06/06(日) 19:25:46.16ID:a60f9MS4 $ objdump -d -j .text /usr/bin/cp
669デフォルトの名無しさん
2021/06/06(日) 19:47:31.05ID:czQb8XNZ670デフォルトの名無しさん
2021/06/06(日) 19:48:12.73ID:P8Y1M++D >>669
それはLinuxだろ
それはLinuxだろ
671デフォルトの名無しさん
2021/06/06(日) 19:50:10.61ID:czQb8XNZ >>670
BSDもだけど。macOSもな
BSDもだけど。macOSもな
672デフォルトの名無しさん
2021/06/06(日) 19:53:49.73ID:P8Y1M++D なんかずれてるな
673デフォルトの名無しさん
2021/06/06(日) 19:55:06.72ID:P8Y1M++D オープンソースとそうでないものがあって、そもそもはオープンソースでない方が元。
674デフォルトの名無しさん
2021/06/06(日) 19:55:15.47ID:czQb8XNZ お前が何を噛みついてるのかわからん
お前がズレてるんだろうがぁ
お前がズレてるんだろうがぁ
675デフォルトの名無しさん
2021/06/06(日) 19:59:04.19ID:czQb8XNZ676デフォルトの名無しさん
2021/06/06(日) 20:01:57.37ID:wmjhjcQW >>667
それらの基本的なコマンドはLinuxが作ってるんじゃなくて
GNUが作ってる。Linuxそれを採用してるだけ
それらの基本的なコマンドはだいたいcoreutilsの中に詰め込まれてる
https://github.com/coreutils/coreutils/tree/master/src
ただし一部は別だったりする。例えばfindはfindutils
cdはシェルで実装されてるからbashとかのソースコードを見ないとわからない
Linux以外を見たければそのOSを作ってるサイトとかに書いてある
それらの基本的なコマンドはLinuxが作ってるんじゃなくて
GNUが作ってる。Linuxそれを採用してるだけ
それらの基本的なコマンドはだいたいcoreutilsの中に詰め込まれてる
https://github.com/coreutils/coreutils/tree/master/src
ただし一部は別だったりする。例えばfindはfindutils
cdはシェルで実装されてるからbashとかのソースコードを見ないとわからない
Linux以外を見たければそのOSを作ってるサイトとかに書いてある
677デフォルトの名無しさん
2021/06/06(日) 20:03:14.27ID:wmjhjcQW678デフォルトの名無しさん
2021/06/06(日) 20:04:40.72ID:wmjhjcQW しかしオープンソースじゃないcpってあるんだろうか?w
unixのソースコードも公開されてたよね?
unixのソースコードも公開されてたよね?
679デフォルトの名無しさん
2021/06/06(日) 20:05:20.51ID:czQb8XNZ680デフォルトの名無しさん
2021/06/06(日) 20:11:51.24ID:a60f9MS4 System V とか Microsoft Xenix とか BSDI のコマンドとかだったりして
681デフォルトの名無しさん
2021/06/06(日) 20:24:40.79ID:JMlL8BLG >669 676
ありがとうございます。GitHubでソースコード拝見しましたが
C言語難しいですね。
ありがとうございます。GitHubでソースコード拝見しましたが
C言語難しいですね。
682デフォルトの名無しさん
2021/06/06(日) 22:11:42.25ID:aDY6ROlo 標準出力の速度を制限したり、通信速度を表示するコマンドってないでしょうか?
683デフォルトの名無しさん
2021/06/06(日) 23:47:07.17ID:2q78RNEI684デフォルトの名無しさん
2021/06/06(日) 23:58:07.43ID:///+rfU8685デフォルトの名無しさん
2021/06/07(月) 02:17:17.72ID:pO0RV8yO Pipe Viewer とか
http://www.ivarch.com/programs/pv.shtml
http://www.ivarch.com/programs/pv.shtml
686デフォルトの名無しさん
2021/06/07(月) 11:24:53.90ID:4bgMFjRA >>685
ありがとうございました!
ありがとうございました!
687デフォルトの名無しさん
2021/06/08(火) 14:08:09.66ID:OYNrrHpJ 誰かいます?質問いいですか?
688デフォルトの名無しさん
2021/06/08(火) 16:02:21.82ID:CHrXnr0w ff fb 20
689デフォルトの名無しさん
2021/06/08(火) 19:32:55.59ID:VAaMDIwe .bashrcのaliasでnohupしたいんだがどう書けばいいの?
これだと上手くいかなかった
alias unko='sudo nohup sh -c '¥''time /unko/unchi.sh '¥'' &'
これだと上手くいかなかった
alias unko='sudo nohup sh -c '¥''time /unko/unchi.sh '¥'' &'
690デフォルトの名無しさん
2021/06/09(水) 10:49:19.85ID:Zc888NJs >>689
それって sudo してるからパスワード入力が必要になるが、最後に & 付いてるからシェルに戻って来ちゃうからうまく行かんのでは?
普通にコマンドラインから入力してもうまく行かんと思うんだが。1度sudoで何かを動かした後でパスワード入力しなくて良い状態になっている時ならできるだろうけど。
それって sudo してるからパスワード入力が必要になるが、最後に & 付いてるからシェルに戻って来ちゃうからうまく行かんのでは?
普通にコマンドラインから入力してもうまく行かんと思うんだが。1度sudoで何かを動かした後でパスワード入力しなくて良い状態になっている時ならできるだろうけど。
691デフォルトの名無しさん
2021/06/09(水) 14:08:40.45ID:HNZZx/kM692デフォルトの名無しさん
2021/06/13(日) 19:52:58.76ID:5F9QidAB sudo でワイルドカード使いたいときって
sudo sh -c "hoge *"
をイディオムだと思って使うのが良いですかね?
他のやり方ってありますか?
sudo sh -c "hoge *"
をイディオムだと思って使うのが良いですかね?
他のやり方ってありますか?
693デフォルトの名無しさん
2021/06/13(日) 20:33:30.15ID:ZhJARNOF694デフォルトの名無しさん
2021/06/14(月) 11:12:16.03ID:KZOl1vP3 イディオムってなんだよ? 何も考えたくないって言ってんのか?
正しいコードを書くだけの話だろ
正しいコードを書くだけの話だろ
695デフォルトの名無しさん
2021/06/14(月) 12:55:12.73ID:0x3Kpqg0 その「正しいコード」とやらが、初心者にはちょっと難しいことはわかる。
凝ったことをやるときに、シェル組み込みのコマンドや機能は混乱のもとやからしゃあない。
凝ったことをやるときに、シェル組み込みのコマンドや機能は混乱のもとやからしゃあない。
696デフォルトの名無しさん
2021/06/14(月) 15:51:02.64ID:KZOl1vP3 俺が突っ込みたいのは「イディオム」って言葉だよ
仕組みを理解したくないってのがバレバレなんだよ
上司「なんでこんなコードにしたの?」
馬鹿「知りません。イディオムです!」
っていいたいのバレバレやろ?
仕組みを理解したくないってのがバレバレなんだよ
上司「なんでこんなコードにしたの?」
馬鹿「知りません。イディオムです!」
っていいたいのバレバレやろ?
697デフォルトの名無しさん
2021/06/14(月) 16:13:33.51ID:lTAIWsCW すみません
sh -c は何も sudo でワイルドカードを使うためだけに存在する構文ではないので、イディオムと申しました
sh -c は何も sudo でワイルドカードを使うためだけに存在する構文ではないので、イディオムと申しました
698デフォルトの名無しさん
2021/06/14(月) 16:18:29.41ID:lTAIWsCW sudoが使えるユーザが利用者で、実行時にパスワードを求める想定です
このときにワイルドカードを使うための、その「正しいコード」とはどのようなものですか、というのが質問です
このときにワイルドカードを使うための、その「正しいコード」とはどのようなものですか、というのが質問です
699デフォルトの名無しさん
2021/06/14(月) 19:26:11.00ID:hx6guc/Q sudoでもワイルドカード使えるし
echo /etc/*.conf
ってしてみろ
shellの機能を使ってるのがわかってない
shellのオーナーはrootじゃなくユーザー
echo /etc/*.conf
ってしてみろ
shellの機能を使ってるのがわかってない
shellのオーナーはrootじゃなくユーザー
700デフォルトの名無しさん
2021/06/14(月) 21:27:46.24ID:KZOl1vP3 正しいコードを聞くんじゃなくて、
シェルスクリプトを勉強しろって言ってんの
コード聞いて終わりにするだろ
上司「なんでこんなコードにしたの?」
馬鹿「知りません。5ちゃんねるでこれが正しいって聞きました!」
シェルスクリプトを勉強しろって言ってんの
コード聞いて終わりにするだろ
上司「なんでこんなコードにしたの?」
馬鹿「知りません。5ちゃんねるでこれが正しいって聞きました!」
701デフォルトの名無しさん
2021/06/14(月) 21:29:27.91ID:0x3Kpqg0702デフォルトの名無しさん
2021/06/14(月) 21:32:42.19ID:0x3Kpqg0703デフォルトの名無しさん
2021/06/14(月) 21:42:49.75ID:TBcjiJdx704デフォルトの名無しさん
2021/06/14(月) 21:47:07.04ID:KZOl1vP3 どこがイディオムなんだ?ただのワイルドカードだろ
*がワイルドカードで終わる話なんだが?
うん。はいおわた。そこにイディオムはありません。
https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%87%E3%82%A3%E3%82%AA%E3%83%A0
イディオム(英語: idiom、フランス語: idiome、ドイツ語: Idiom)とは、
単語における一定の配列での連結の総称である。言語の類型によっては、
単語に準ずる形態素や表意性を持つ文字がこの役割を担うこともある。
この連結によって、慣習的に用例と意味が固定しており、字面から意味を推測できないことも多い。
*がワイルドカードで終わる話なんだが?
うん。はいおわた。そこにイディオムはありません。
https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%87%E3%82%A3%E3%82%AA%E3%83%A0
イディオム(英語: idiom、フランス語: idiome、ドイツ語: Idiom)とは、
単語における一定の配列での連結の総称である。言語の類型によっては、
単語に準ずる形態素や表意性を持つ文字がこの役割を担うこともある。
この連結によって、慣習的に用例と意味が固定しており、字面から意味を推測できないことも多い。
705デフォルトの名無しさん
2021/06/14(月) 21:51:20.88ID:XErzM4Zs ↑ 本題とは関係ない変なこだわりっぷりはキチガイ
706デフォルトの名無しさん
2021/06/14(月) 22:01:38.26ID:KZOl1vP3 本題の答え *がワイルドカード
あとは書いたように動く
イディオムなんてない
あとは書いたように動く
イディオムなんてない
707デフォルトの名無しさん
2021/06/14(月) 22:07:17.88ID:RVbOy7mU >>701
sudoはsudo cmdのcmdの実行をroot権限にするだけ
echo *.confもechoにしてみたらいろんなの渡されてびっくりだよ
shellはあらかじめ余計な処理をする
shellを実行してるのはuser
sudoはsudo cmdのcmdの実行をroot権限にするだけ
echo *.confもechoにしてみたらいろんなの渡されてびっくりだよ
shellはあらかじめ余計な処理をする
shellを実行してるのはuser
708デフォルトの名無しさん
2021/06/14(月) 22:19:23.20ID:XErzM4Zs >あらかじめ余計な処理
余計といえば余計だが、その余計なおかげでechoなどは何もしなくてもいいんだけど
POSIXに展開はルールは明文化されてるから一度読めばいいと思う
余計といえば余計だが、その余計なおかげでechoなどは何もしなくてもいいんだけど
POSIXに展開はルールは明文化されてるから一度読めばいいと思う
709デフォルトの名無しさん
2021/06/14(月) 22:38:14.31ID:0x3Kpqg0710デフォルトの名無しさん
2021/06/14(月) 22:38:16.95ID:lTAIWsCW711デフォルトの名無しさん
2021/06/14(月) 22:42:35.98ID:0x3Kpqg0 >>707
sudoであえてshを実行する意味がわかってないやろ?
sudoであえてshを実行する意味がわかってないやろ?
712デフォルトの名無しさん
2021/06/14(月) 22:43:09.07ID:XErzM4Zs >>710
人格が変わりすぎだろうw
It’s a common idiom to use env to find bash even if it’s been installed in another directory
と同じような感覚で使ったんだろう?そもそもは。とは思ってたけど
しかし人格が変わりすぎwww
人格が変わりすぎだろうw
It’s a common idiom to use env to find bash even if it’s been installed in another directory
と同じような感覚で使ったんだろう?そもそもは。とは思ってたけど
しかし人格が変わりすぎwww
713デフォルトの名無しさん
2021/06/14(月) 22:43:39.18ID:TBcjiJdx714デフォルトの名無しさん
2021/06/14(月) 22:45:44.34ID:lTAIWsCW715デフォルトの名無しさん
2021/06/14(月) 22:51:30.90ID:XErzM4Zs716デフォルトの名無しさん
2021/06/14(月) 22:53:20.37ID:XErzM4Zs717デフォルトの名無しさん
2021/06/14(月) 22:55:27.91ID:TBcjiJdx >>715
> そんな想定ができるヤツは、あんな質問をしないし、「イディオム」とは言うまい。
いやこんなにも論理的に破綻していてかつイディオムという語の意味を理解してない奴が同じタイミングで二人もいるって恐怖でしかないんだが
> そんな想定ができるヤツは、あんな質問をしないし、「イディオム」とは言うまい。
いやこんなにも論理的に破綻していてかつイディオムという語の意味を理解してない奴が同じタイミングで二人もいるって恐怖でしかないんだが
718デフォルトの名無しさん
2021/06/14(月) 22:58:00.42ID:XErzM4Zs 別に居ても不思議じゃないけどw
719デフォルトの名無しさん
2021/06/15(火) 03:36:25.29ID:fYgQamCV720デフォルトの名無しさん
2021/06/15(火) 04:54:46.12ID:UNOhr6// >>719
> ただ主張するのではなく、どのように破綻しているのかを述べよ。
では、
>>709
> そんな想定ができるヤツは、あんな質問をしないし、「イディオム」とは言うまい。
がどう破綻しているか述べる
質問者は「一般ユーザが展開したワイルドカード」と「root が展開したワイルドカード」が違うのを知っているからこそ「sudo でワイルドカードを使いたい」と思い至ったのであって、この時点でワイルドカードの展開はシェルが担うという前提を持っている
その上で「ワイルドカードの展開をroot のシェルに委ねられないか」というのが元の質問なわけだね
従って、
> そんな想定ができるヤツは、あんな質問をしない
というのは偽だ
なんせ事実として質問者は「そんな想定」を持った上で「あんな質問」をしているのだから
また、いくつかの説明や例文がこれまでに出ているように、質問者のイディオムという語の用法は全く間違っていないし広く使われているものと合致するので、
> 「イディオム」とは言うまい
というのも頓珍漢も甚だしい
(もちろん質問者のイディオムという語の使い方が間違っていることをあなたたちが客観的に示すということはあっても良い。できるものならご自由にどうぞ)
そもそも「こういう知識レベルの人間はこういう語を使わない」なる命題が常に真なわけないでしょう
コンピュータの知識と日用語の語彙に何らかの相関があったとして、それは「そういう傾向がある」というだけなのでね
以上のことから、>>709は事実から説明される事柄と尽く反対のことを言っていて、全体的に偽なので、論理的に破綻しているといえる
> ただ主張するのではなく、どのように破綻しているのかを述べよ。
では、
>>709
> そんな想定ができるヤツは、あんな質問をしないし、「イディオム」とは言うまい。
がどう破綻しているか述べる
質問者は「一般ユーザが展開したワイルドカード」と「root が展開したワイルドカード」が違うのを知っているからこそ「sudo でワイルドカードを使いたい」と思い至ったのであって、この時点でワイルドカードの展開はシェルが担うという前提を持っている
その上で「ワイルドカードの展開をroot のシェルに委ねられないか」というのが元の質問なわけだね
従って、
> そんな想定ができるヤツは、あんな質問をしない
というのは偽だ
なんせ事実として質問者は「そんな想定」を持った上で「あんな質問」をしているのだから
また、いくつかの説明や例文がこれまでに出ているように、質問者のイディオムという語の用法は全く間違っていないし広く使われているものと合致するので、
> 「イディオム」とは言うまい
というのも頓珍漢も甚だしい
(もちろん質問者のイディオムという語の使い方が間違っていることをあなたたちが客観的に示すということはあっても良い。できるものならご自由にどうぞ)
そもそも「こういう知識レベルの人間はこういう語を使わない」なる命題が常に真なわけないでしょう
コンピュータの知識と日用語の語彙に何らかの相関があったとして、それは「そういう傾向がある」というだけなのでね
以上のことから、>>709は事実から説明される事柄と尽く反対のことを言っていて、全体的に偽なので、論理的に破綻しているといえる
721デフォルトの名無しさん
2021/06/15(火) 11:08:32.71ID:ic6VniVo722デフォルトの名無しさん
2021/06/15(火) 11:50:21.12ID:vhbon9Jn >>699
そのための全ての展開に優先するaliasですよ
user/pwdを保存しておいて、su/sudo&好きにcdしてそこで*を展開
hogeはシェル関数にしておいて、末尾に元のユーザーへsu/pwd復元コード
そのための全ての展開に優先するaliasですよ
user/pwdを保存しておいて、su/sudo&好きにcdしてそこで*を展開
hogeはシェル関数にしておいて、末尾に元のユーザーへsu/pwd復元コード
723デフォルトの名無しさん
2021/06/15(火) 11:56:27.22ID:vhbon9Jn エイリアスはパースの第一段階なので、su root; cd some/dir; hoge *に渡る*はsu/cd後のものになります、言葉不足ごめん
ファイル名展開はパラメータ展開よりも後なので、他の展開で仕込んでもいいかも
ファイル名展開はパラメータ展開よりも後なので、他の展開で仕込んでもいいかも
724デフォルトの名無しさん
2021/06/15(火) 11:57:34.70ID:vhbon9Jn >>723はalias fuga=に突っ込むコマンドです
725デフォルトの名無しさん
2021/06/15(火) 12:03:49.18ID:fYgQamCV726デフォルトの名無しさん
2021/06/15(火) 12:32:19.46ID:Uk8DlJ/9 またID切り替えて恥晒し続けるのか
昨日は他スレでも同じようなやつがいたな
昨日は他スレでも同じようなやつがいたな
727デフォルトの名無しさん
2021/06/15(火) 14:22:06.77ID:fYgQamCV >>726
自分の敵は全部同一人物扱いか。w
自分の敵は全部同一人物扱いか。w
728デフォルトの名無しさん
2021/06/15(火) 14:48:09.92ID:D4jRQBdQ >>721
権限も引き継ぐから何もやってないのと同じ
権限も引き継ぐから何もやってないのと同じ
729デフォルトの名無しさん
2021/06/15(火) 15:23:52.83ID:uDm4jDy6 >>726
XXな人が使うイディオム
XXな人が使うイディオム
730デフォルトの名無しさん
2021/06/16(水) 08:06:02.87ID:drc75L4c 微妙に関係しそうだから恥をしのんで
()のサブシェルで手軽にサブシェルのID得る方法ってないかな?
パラメタ展開をエイリアスで遅延テクは、エイリアスが行頭に来る必要があるので、おもむろに書ける()の利点が無くなるかなと
()のサブシェルで手軽にサブシェルのID得る方法ってないかな?
パラメタ展開をエイリアスで遅延テクは、エイリアスが行頭に来る必要があるので、おもむろに書ける()の利点が無くなるかなと
731デフォルトの名無しさん
2021/06/16(水) 09:57:22.10ID:up1ZHWjO echo $$
ではダメなの?
ではダメなの?
732デフォルトの名無しさん
2021/06/16(水) 10:13:45.13ID:drc75L4c >>731
()の中の$$は親シェルのpidを返すのよ
それこそsh -cに(適当にエスケープした)文字列としてecho $$を渡せって話だけど、折角分かりやすい()構文があるのだから、その範囲内で何かワークアラウンドできないなと
()の中の$$は親シェルのpidを返すのよ
それこそsh -cに(適当にエスケープした)文字列としてecho $$を渡せって話だけど、折角分かりやすい()構文があるのだから、その範囲内で何かワークアラウンドできないなと
733デフォルトの名無しさん
2021/06/17(木) 17:40:01.55ID:uOhhE14V このようなファイルがあります。
先頭の単語+デリミタ(今回はカンマ)以降の文字を全て削除したい場合は
sedでどのように書けばいいでしょうか?
one,no need word, no need word
two,no need word, no need word
theree,no need word, no need word
four,no need word, no need word
先頭の単語+デリミタ(今回はカンマ)以降の文字を全て削除したい場合は
sedでどのように書けばいいでしょうか?
one,no need word, no need word
two,no need word, no need word
theree,no need word, no need word
four,no need word, no need word
734デフォルトの名無しさん
2021/06/17(木) 18:27:37.79ID:xgZUa/OO sed じゃないけど cut で
$ cut -d, -f2- dat.csv
$ cut -d, -f2- dat.csv
735デフォルトの名無しさん
2021/06/17(木) 19:04:27.30ID:vGCQo8/9 sed -r -i 's/\,.*$/\,/' a.csv
736デフォルトの名無しさん
2021/06/17(木) 19:44:55.11ID:xgZUa/OO >>734
間違えちゃった…(テヘッ
間違えちゃった…(テヘッ
737デフォルトの名無しさん
2021/06/17(木) 21:58:28.56ID:T6UVeHQo なんでもいいけど、-iはよせよw
738デフォルトの名無しさん
2021/06/17(木) 22:03:25.59ID:T6UVeHQo あ、あともう一つ突っ込み。
-rもいらないだろ?なんで使った?
バックスラもいらないでしょ
-rもいらないだろ?なんで使った?
バックスラもいらないでしょ
739デフォルトの名無しさん
2021/06/17(木) 23:43:32.54ID:dfr4yCUQ740デフォルトの名無しさん
2021/06/17(木) 23:49:44.80ID:dfr4yCUQ741デフォルトの名無しさん
2021/06/18(金) 01:05:57.70ID:fLSgA5jz742デフォルトの名無しさん
2021/06/23(水) 00:40:02.57ID:IzFohus8 >>675
UNIXを知ってますか?
UNIXを知ってますか?
743デフォルトの名無しさん
2021/06/23(水) 15:18:18.24ID:IrcINDyC 世間的に気にしてるヤツはそんなに居ない
744デフォルトの名無しさん
2021/06/25(金) 10:36:26.68ID:RM7Ajj8i >>733
sed -r 's/,.*$/,/g' test.csv
-r 拡張正規表現を使えるようにする。長いオプションはコレー> --regexp-extended
-i 何の確認もなしに実行結果でファイルを上書きするオプション。絶対に使ってはならない。 --in-place
正規表現
「.」は「任意の1文字」
「*」0回以上の繰り返し(たぶん0は空文字列)
「$」は「行末」
「,.*$」でカンマとそれに続く任意の1文字から行末まで
echo "chon, chon, chon" | sed -e 's/chon/5ch/' # 5ch, chon, chon
echo "chon, chon, chon" | sed -e 's/chon/5ch/g' # 5ch, 5ch, 5ch
sed -r 's/,.*$/,/g' test.csv
-r 拡張正規表現を使えるようにする。長いオプションはコレー> --regexp-extended
-i 何の確認もなしに実行結果でファイルを上書きするオプション。絶対に使ってはならない。 --in-place
正規表現
「.」は「任意の1文字」
「*」0回以上の繰り返し(たぶん0は空文字列)
「$」は「行末」
「,.*$」でカンマとそれに続く任意の1文字から行末まで
echo "chon, chon, chon" | sed -e 's/chon/5ch/' # 5ch, chon, chon
echo "chon, chon, chon" | sed -e 's/chon/5ch/g' # 5ch, 5ch, 5ch
745デフォルトの名無しさん
2021/06/25(金) 10:52:02.40ID:RM7Ajj8i >>733
# cutコマンドで1列目を取り出して
# sedで行末をカンマに置き換える
cut --delimiter=',' --fields='1' test.csv | sed 's/$/,/'
コレでよければ
cut --delimiter=',' --fields='1' test.csv | sed 's/$/,/' | tee test.csv
追記したければ
cut --delimiter=',' --fields='1' test.csv | sed 's/$/,/' | tee --append test.csv
# cutコマンドで1列目を取り出して
# sedで行末をカンマに置き換える
cut --delimiter=',' --fields='1' test.csv | sed 's/$/,/'
コレでよければ
cut --delimiter=',' --fields='1' test.csv | sed 's/$/,/' | tee test.csv
追記したければ
cut --delimiter=',' --fields='1' test.csv | sed 's/$/,/' | tee --append test.csv
746デフォルトの名無しさん
2021/06/25(金) 23:22:45.67ID:8lh6XF2h シェルスクリプトの話じゃねえ
747デフォルトの名無しさん
2021/06/26(土) 00:28:57.99ID:HkMm3Nsz pythonとかJavaは沢山ある癖に、シェルスクリプト学べるサイトは一つもないのな…
748デフォルトの名無しさん
2021/06/26(土) 06:02:48.49ID:m56tn/Vu >>733
# PowerShell
Get-Content "test.csv" | ForEach-Object { $1列目, $2列目, $3列目 = $_.Split(",") ; "$1列目" -replace "$", "," }
PS> gal
# Aliasを使うとこうなる
type "test.csv" | % { $1列目, $2列目, $3列目 = $_.Split(",") ; "$1列目" -replace "$", "," }
# PowerShell
Get-Content "test.csv" | ForEach-Object { $1列目, $2列目, $3列目 = $_.Split(",") ; "$1列目" -replace "$", "," }
PS> gal
# Aliasを使うとこうなる
type "test.csv" | % { $1列目, $2列目, $3列目 = $_.Split(",") ; "$1列目" -replace "$", "," }
749デフォルトの名無しさん
2021/06/26(土) 13:09:52.71ID:pd6KxWqx >>747
UNIX & Linux コマンド・シェルスクリプト リファレンス
https://shellscript.sunone.me/
このサイトはどうだ?
リファレンス名乗ってるけど、シェルスクリプトの基本から
解説してるぞ。
UNIX & Linux コマンド・シェルスクリプト リファレンス
https://shellscript.sunone.me/
このサイトはどうだ?
リファレンス名乗ってるけど、シェルスクリプトの基本から
解説してるぞ。
750デフォルトの名無しさん
2021/06/26(土) 15:02:58.18ID:HkMm3Nsz 書き方間違えた。。
シェルスクリプト学べる講座みたいな意味です。超初心者向けはあるけど、本格的に教えてくれるのないよね?
シェルスクリプト学べる講座みたいな意味です。超初心者向けはあるけど、本格的に教えてくれるのないよね?
751デフォルトの名無しさん
2021/06/26(土) 15:12:45.40ID:pd6KxWqx >>750
本格的、ってどういうもの?
シェル芸みたいなものってことか?
ま、それは確かにないだろうなあ。
ほとんどが秘伝というか口伝みたいなものだから、講座作れるほど網羅している
人ってのがなかなかいないしなあw
本格的、ってどういうもの?
シェル芸みたいなものってことか?
ま、それは確かにないだろうなあ。
ほとんどが秘伝というか口伝みたいなものだから、講座作れるほど網羅している
人ってのがなかなかいないしなあw
752デフォルトの名無しさん
2021/06/26(土) 15:20:25.76ID:15vAhO8I python使えたらシェルスクリプト要らんのでは
753デフォルトの名無しさん
2021/06/26(土) 15:26:57.82ID:pd6KxWqx754デフォルトの名無しさん
2021/06/26(土) 16:20:33.94ID:fSNbZd7z man bash > $HOME/Documents/bash.txt
vi $HOME/Documents/bash.txt
SHELL BUILTIN COMMANDSを検索
man dash > $HOME/Documents/bash.txt
vi $HOME/Documents/bash.txt
Builtinsを検索
vi $HOME/Documents/bash.txt
SHELL BUILTIN COMMANDSを検索
man dash > $HOME/Documents/bash.txt
vi $HOME/Documents/bash.txt
Builtinsを検索
755デフォルトの名無しさん
2021/06/26(土) 16:46:27.14ID:fSNbZd7z man bash-builtins
/検索語句
Nキー:次
Bキー:前
Qキー:終了
/検索語句
Nキー:次
Bキー:前
Qキー:終了
756デフォルトの名無しさん
2021/06/26(土) 16:58:17.32ID:Y3/GrXsT >>752
インストールされてない/したくない環境もあるやろ。
インストールされてない/したくない環境もあるやろ。
757デフォルトの名無しさん
2021/06/26(土) 19:39:26.99ID:6sjjJ5as 本なら、ある。
UNIXシェルスクリプトコマンドブック 第3版、 山下哲典、2015
ファイル・文字列処理なら、Ruby が良い
fileutils モジュールの、DryRun で、実際には実行せずに確認できる。
削除なら、FileUtils::DryRun.rm
UNIXシェルスクリプトコマンドブック 第3版、 山下哲典、2015
ファイル・文字列処理なら、Ruby が良い
fileutils モジュールの、DryRun で、実際には実行せずに確認できる。
削除なら、FileUtils::DryRun.rm
758デフォルトの名無しさん
2021/06/26(土) 20:08:24.78ID:eKFjOqkk >>755
何のためのレスかわからんけど、h 押してみ
何のためのレスかわからんけど、h 押してみ
759デフォルトの名無しさん
2021/06/26(土) 23:12:46.20ID:Y3/GrXsT760デフォルトの名無しさん
2021/06/27(日) 03:00:03.59ID:JLxNdtth h 押すだけで使い方を覚えなくてすむから良いね
761デフォルトの名無しさん
2021/06/27(日) 10:23:28.81ID:kOTo8S0v bashの予約語
! case coproc do done elif else esac fi for function if in select then until while { } time [[ ]]
その中からdashにはない予約語
! [[ ]] coproc function in select time
! case coproc do done elif else esac fi for function if in select then until while { } time [[ ]]
その中からdashにはない予約語
! [[ ]] coproc function in select time
762デフォルトの名無しさん
2021/06/27(日) 13:34:55.40ID:eeXftvTT763デフォルトの名無しさん
2021/06/28(月) 09:24:33.50ID:7rguVsVy >>747
名著「入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界」
名著「入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界」
764デフォルトの名無しさん
2021/06/28(月) 15:58:41.95ID:PrwZxveA functionはdashにはないので関数定義で
function 関数名 () { }
と書けない。関数をつくるときはfunctionを省く。
function 関数名 () { }
と書けない。関数をつくるときはfunctionを省く。
765デフォルトの名無しさん
2021/07/04(日) 23:04:42.22ID:B2MxyBfM Windows10ではC:\Windows\Microsoft.NET\Framework\<バージョン>以下にvbc.exeが標準インストールされてるけど
Windows11のInsider Preview版でも入ってる?
Windows11のInsider Preview版でも入ってる?
766デフォルトの名無しさん
2021/07/07(水) 15:15:00.04ID:y8n+ZYbw シェルスクリプトの引数として文字列を渡すとき、空白等を含むものはダブルクォーテーションで包んで渡してます
このダブルクォーテーションを省略できたら楽なのですが、行末 (セミコロン) まで丸々一つの文字列と見なす方法ありますか
このダブルクォーテーションを省略できたら楽なのですが、行末 (セミコロン) まで丸々一つの文字列と見なす方法ありますか
767デフォルトの名無しさん
2021/07/07(水) 17:53:02.55ID:S2V3/enC 上手く引数をクオートしてやればいいんじゃね、bashには最初からそんなシェル関数が定義されてるので、参考に
declare -p等の出力ね
ただしパースが不可逆な処理である以上、完全な再構築は不可能
自明な例:cmd 'a'とcmd a
行内コメントとヒストリ、スクリプト中のエイリアス展開等を使っていいならもっと攻められる
aliasは全ての展開に優先するので何でもできる
func () { history 1 | 引数処理}
alias getcmdline='func #'
getcmdline ) any' illegal " args
スクリプト中なら
set -o history
shopt -s expand_alias
が必要
declare -p等の出力ね
ただしパースが不可逆な処理である以上、完全な再構築は不可能
自明な例:cmd 'a'とcmd a
行内コメントとヒストリ、スクリプト中のエイリアス展開等を使っていいならもっと攻められる
aliasは全ての展開に優先するので何でもできる
func () { history 1 | 引数処理}
alias getcmdline='func #'
getcmdline ) any' illegal " args
スクリプト中なら
set -o history
shopt -s expand_alias
が必要
768デフォルトの名無しさん
2021/07/07(水) 17:59:42.48ID:S2V3/enC pwshにはズバリstop persing operator --%があるね
769デフォルトの名無しさん
2021/07/07(水) 18:50:47.92ID:S2V3/enC ;で止めるのはexprやパラメータ置換で;以降を切り出しておいて、ラップするコマンドの処理が済んだ後でeval に渡せばいいかな
&等他の制御構造も使いたいとなるとキリがないけど
下手に通常コマンドのように見せかけるのは混乱の元にもなるので、割り切った方がいい
&等他の制御構造も使いたいとなるとキリがないけど
下手に通常コマンドのように見せかけるのは混乱の元にもなるので、割り切った方がいい
770デフォルトの名無しさん
2021/07/07(水) 19:10:07.39ID:2/exV/Wq たかが''で括る手間を省く為に、あまりアナーキーなことをするのは…
771デフォルトの名無しさん
2021/07/07(水) 19:41:57.72ID:JjiOZstZ だよな
772デフォルトの名無しさん
2021/07/07(水) 21:59:30.78ID:rfVJ+RI1 これ動くんだ…
773デフォルトの名無しさん
2021/07/07(水) 22:09:19.52ID:lJn1zakl インラインコメントのつもりで付けた#以降が読まれる可能性があるけど、普通スクリプト中のエイリアスは無効だから大丈夫なのね
774デフォルトの名無しさん
2021/07/10(土) 17:17:24.24ID:QtAhxdi9 w3mブラウザを使っています。
w3mを起動した後の自動処理ってシェルでどのように書けばいいでしょうか??
毎回タブを作ってURL01とURL02を開くなどをやりたいのですが
bashrcにaliasやfunctionを書くことも考えましたが、w3m起動後の処理はできないので困っております。
w3mを起動した後の自動処理ってシェルでどのように書けばいいでしょうか??
毎回タブを作ってURL01とURL02を開くなどをやりたいのですが
bashrcにaliasやfunctionを書くことも考えましたが、w3m起動後の処理はできないので困っております。
775デフォルトの名無しさん
2021/07/10(土) 22:08:01.96ID:icE46eu/ 例えば、Ruby, Selenium Webdriver で、
Chrome なら操作できるけど、そういうマイナーなブラウザには対応していないかも
Rubyの他に、JavaScript でも書ける。
Selenium IDE と言うのもあるらしい
url_0 = "どこかのURL"
url_1 = "どこかのURL"
driver.navigate.to url_0 # url_0 のタブを開く
driver.execute_script( "window.open()" ) # 新しいタブを開く
driver.switch_to.window( driver.window_handles.last ) # 新しいタブへ移動する
driver.navigate.to url_1 # 新しいタブ内で、url_1 を開く
Chrome なら操作できるけど、そういうマイナーなブラウザには対応していないかも
Rubyの他に、JavaScript でも書ける。
Selenium IDE と言うのもあるらしい
url_0 = "どこかのURL"
url_1 = "どこかのURL"
driver.navigate.to url_0 # url_0 のタブを開く
driver.execute_script( "window.open()" ) # 新しいタブを開く
driver.switch_to.window( driver.window_handles.last ) # 新しいタブへ移動する
driver.navigate.to url_1 # 新しいタブ内で、url_1 を開く
776デフォルトの名無しさん
2021/07/10(土) 23:45:50.65ID:/14ZuXuK TTY操作ってんならシェルスクリプトではなくexpectスクリプトでしょ
Linux/Unix/プログラム各板見たがexpectスレはないみたいで恐縮ではあるが
Linux/Unix/プログラム各板見たがexpectスレはないみたいで恐縮ではあるが
777デフォルトの名無しさん
2021/07/11(日) 02:11:09.53ID:lZiRxAj0 Ruby にも、expect ある
778デフォルトの名無しさん
2021/07/11(日) 06:05:30.31ID:KqeUxmyI 間に擬似端末を挟む方法で w3m や lynx を自動化したことならあるけど
w3m には自動化のためのインターフェースがあるみたいだよ。
その名を "Local CGI" という。
残念ながら man には書かれていないが、普通にダウンロードすれば
doc-jp/MANUAL.html に書いてある。
サンプルコードは Bonus/ にある。
ご所望のことが全部できるかは判らないが
他の方法よりは確実な動作を期待できそうだ。
w3m には自動化のためのインターフェースがあるみたいだよ。
その名を "Local CGI" という。
残念ながら man には書かれていないが、普通にダウンロードすれば
doc-jp/MANUAL.html に書いてある。
サンプルコードは Bonus/ にある。
ご所望のことが全部できるかは判らないが
他の方法よりは確実な動作を期待できそうだ。
779デフォルトの名無しさん
2021/07/12(月) 18:24:55.56ID:f04FcsMT780デフォルトの名無しさん
2021/07/15(木) 16:46:27.48ID:IbROtnW3 >/dev/nullでゴミ捨ててるコードをよく見るけど、
|:はダメなの?個人的によく使うんだけど
標準入力受け付けない:があったりするのだろうか
|:はダメなの?個人的によく使うんだけど
標準入力受け付けない:があったりするのだろうか
781デフォルトの名無しさん
2021/07/15(木) 16:49:38.15ID:IbROtnW3 もちろんステータス見たい時はイエスマンの:はダメだけど、単に出力全部捨てたいケースね
標準エラーはパイプを通らないし、標準出力は:が食べる
標準エラーはパイプを通らないし、標準出力は:が食べる
782デフォルトの名無しさん
2021/07/15(木) 17:56:15.08ID:CDvGwwEr 全部捨ててるのではなくて
最初に書いた時にSIGPIPEで死んでる
それに無駄にfork/cloneしてる
最初に書いた時にSIGPIPEで死んでる
それに無駄にfork/cloneしてる
783デフォルトの名無しさん
2021/07/19(月) 08:43:54.11ID:7DxAXQZB 【完全解説】ブログで月1万円稼ぐ具体的な方法!【アニメ動画】
https://www.youtube.com/watch?v=M_Umbak9icg&t=401s
【ブログの始め方完全解説!】聞くだけでOK!初心者でもわかるよう基本から超丁寧に解説!【これだけでOK!】
https://www.youtube.com/watch?v=M1lUsqp7lgY
【凡人でもOK】何の実績も強みも無い人がブログで稼ぐ方法
https://www.youtube.com/watch?v=OODFq6YIbYg
【雑記ブログの始め方】「収益化させやすい」運営方法を5ステップで解説【ワードプレス】
https://www.youtube.com/watch?v=WWU_Akj2onM&t=2s
ブログ運営のおすすめ必須ツール11選!【これだけで月100万円いけます】
https://www.youtube.com/watch?v=w1Oj_WIkNJs
【こんな人は伸びる!】上手くいくブロガーの特徴ベスト5!【月収100万超えブロガーが徹底解説!】
https://www.youtube.com/watch?v=nJG4SsoIN0w
【知らないと失敗する!】ブログで稼ぐための目標設定をプロが解説!
https://www.youtube.com/watch?v=wvWFGZ9hPIo
https://www.youtube.com/watch?v=M_Umbak9icg&t=401s
【ブログの始め方完全解説!】聞くだけでOK!初心者でもわかるよう基本から超丁寧に解説!【これだけでOK!】
https://www.youtube.com/watch?v=M1lUsqp7lgY
【凡人でもOK】何の実績も強みも無い人がブログで稼ぐ方法
https://www.youtube.com/watch?v=OODFq6YIbYg
【雑記ブログの始め方】「収益化させやすい」運営方法を5ステップで解説【ワードプレス】
https://www.youtube.com/watch?v=WWU_Akj2onM&t=2s
ブログ運営のおすすめ必須ツール11選!【これだけで月100万円いけます】
https://www.youtube.com/watch?v=w1Oj_WIkNJs
【こんな人は伸びる!】上手くいくブロガーの特徴ベスト5!【月収100万超えブロガーが徹底解説!】
https://www.youtube.com/watch?v=nJG4SsoIN0w
【知らないと失敗する!】ブログで稼ぐための目標設定をプロが解説!
https://www.youtube.com/watch?v=wvWFGZ9hPIo
784デフォルトの名無しさん
2021/07/19(月) 20:25:38.28ID:Vxw+8mZv makeについて質問。
makeを多段に実行したとき、ログに「make[...]:」とか段数が出力されますが、あの段数をリセットする方法はありますか?
ログはmake: → make[1]: → make[2]: → make[3]:と深くなるにつれて出力が変わりますが、たとえば3段目でリセットして、make: → make[1]: → make: → make[1]:にする、みたいな。
makeを多段に実行したとき、ログに「make[...]:」とか段数が出力されますが、あの段数をリセットする方法はありますか?
ログはmake: → make[1]: → make[2]: → make[3]:と深くなるにつれて出力が変わりますが、たとえば3段目でリセットして、make: → make[1]: → make: → make[1]:にする、みたいな。
785デフォルトの名無しさん
2021/07/19(月) 21:17:27.86ID:1Cvv5Nld makeスクリプトの中に
sh -ec make
挟むとか
sh -ec make
挟むとか
786デフォルトの名無しさん
2021/07/20(火) 10:34:00.51ID:KkKHDI5m787デフォルトの名無しさん
2021/07/20(火) 10:34:49.18ID:KkKHDI5m788デフォルトの名無しさん
2021/07/30(金) 18:22:37.15ID:7AkGA5GJ スクレイピングしたいんですけど何を勉強すればいいですか
不正アクセスに問われたりしないでしょうか?
セキュリティ対策はどのようなことに注意すればよいでしょうか?
不正アクセスに問われたりしないでしょうか?
セキュリティ対策はどのようなことに注意すればよいでしょうか?
789デフォルトの名無しさん
2021/07/30(金) 18:25:38.46ID:PFQXQc2n 誤爆だろな
790デフォルトの名無しさん
2021/07/30(金) 19:56:33.31ID:pVd7PqHN 他人は誰も何も保証などしないし責任など取ってくれないので法律について自分で調べて安全圏と思える範囲内でやるしかない
791デフォルトの名無しさん
2021/08/01(日) 08:18:52.13ID:gdH7Qy0E なんでわざわざシェルスクリプトでスクレイピングするのか?
792デフォルトの名無しさん
2021/08/01(日) 09:34:42.67ID:4xiWMys0 wgetやcurlとjson
HTMLを加工しデータを抽出するためにsed、grep
不正アクセスのリスクはどこにでもある
相手次第でしかないから
過去に図書館のシステムを作ったエンジニアが
蔵書を調べたいという目的で負荷をかけない範囲でアクセスしてたら
訴えられたってのあったな
自分がやってたのを例に挙げると
配信サイトからの動画の一括ダウンロード
配信履歴の取得などか
動画はまあそのものだが
HTMLの履歴ページにアクセスしてページを繰って
回数、時間などの集計をして傾向を分析してた
id入れれば全部やってくれるから便利だったけど
一連の処理をするツールは自分で作った
HTMLを加工しデータを抽出するためにsed、grep
不正アクセスのリスクはどこにでもある
相手次第でしかないから
過去に図書館のシステムを作ったエンジニアが
蔵書を調べたいという目的で負荷をかけない範囲でアクセスしてたら
訴えられたってのあったな
自分がやってたのを例に挙げると
配信サイトからの動画の一括ダウンロード
配信履歴の取得などか
動画はまあそのものだが
HTMLの履歴ページにアクセスしてページを繰って
回数、時間などの集計をして傾向を分析してた
id入れれば全部やってくれるから便利だったけど
一連の処理をするツールは自分で作った
793デフォルトの名無しさん
2021/08/01(日) 10:34:45.80ID:GhkJ8vMz >>792
不正アクセスの意味すら知らんやつがスクレイピングしたらだめだぞ
不正アクセスの意味すら知らんやつがスクレイピングしたらだめだぞ
794デフォルトの名無しさん
2021/08/01(日) 11:26:43.15ID:boMMlR1G795デフォルトの名無しさん
2021/08/01(日) 12:49:15.25ID:ekL5DYUO googleが関わっているサイトはそもそもスクレイピングをさせないよね
自動的にやっていることが分かった瞬間にアクセスを出来なくしている
アルゴリズムは非公開
時間間隔を見ているとかそういう単純なものではないらしい
自動的にやっていることが分かった瞬間にアクセスを出来なくしている
アルゴリズムは非公開
時間間隔を見ているとかそういう単純なものではないらしい
796デフォルトの名無しさん
2021/08/01(日) 13:16:33.62ID:RrS7g+U3 youtubeとか普通に出来てるんだが
特に規制くらったりは無いな
特に規制くらったりは無いな
797デフォルトの名無しさん
2021/08/01(日) 21:46:14.00ID:dQpg7mz5 google検索を自動にしようとすると規制を受けるよ
798デフォルトの名無しさん
2021/08/04(水) 02:42:48.46ID:bE85vB+i zshで走るスクリプトをもらったんですが、bashで走らせるとどこかでエラーになるようです。
一応bashで走るようにしたいんですが、スクリプトのどういう部分をチェックしたらいい、みたいの
ってあります?
一応bashで走るようにしたいんですが、スクリプトのどういう部分をチェックしたらいい、みたいの
ってあります?
799デフォルトの名無しさん
2021/08/04(水) 04:05:35.99ID:rVD3iYVZ ググればある
問題点を絞り込めないんだったら、Webで長く書いてくれてるのを読もう
問題点を絞り込めないんだったら、Webで長く書いてくれてるのを読もう
800デフォルトの名無しさん
2021/08/04(水) 10:23:51.95ID:sXlocsw8 1行ずつ貼り付けて実行してエラー箇所確認できないの
801デフォルトの名無しさん
2021/08/04(水) 14:54:33.64ID:oTWoXRyh いやーここの皆さんならエスパーしていただけるかと思ったのですが。
とりあえず line 25: zparseopts: command not found と出ました。
とりあえず line 25: zparseopts: command not found と出ました。
802デフォルトの名無しさん
2021/08/04(水) 15:57:29.74ID:ZkQ7EvI3 zsh固有のを使ってるつもりが無くてもbashで動かないのは、
いくつかある動作の僅かな差異でもありえるし、そのどれを使ってもわからんから、
エスパーは無理だろな
command not found やん。モロzsh固有の使っててやん
zsh固有のなんてもっとあるんだから、エスパーは尚更無理だろうな
getopt/getoptsを書き換えればいいだろう、その部分の話なら
他にもあるんだったら、command not foundもわからないんだったら自力では山が高いとしか思えんけど、自力で頑張れ
いくつかある動作の僅かな差異でもありえるし、そのどれを使ってもわからんから、
エスパーは無理だろな
command not found やん。モロzsh固有の使っててやん
zsh固有のなんてもっとあるんだから、エスパーは尚更無理だろうな
getopt/getoptsを書き換えればいいだろう、その部分の話なら
他にもあるんだったら、command not foundもわからないんだったら自力では山が高いとしか思えんけど、自力で頑張れ
803デフォルトの名無しさん
2021/08/04(水) 17:01:53.30ID:vF9ccavM つーか、何が起きるかわからんのに、別シェルのスクリプトをわからんままによく実行できるな。w
メチャクチャに壊されるかもなのに。
メチャクチャに壊されるかもなのに。
804デフォルトの名無しさん
2021/08/04(水) 17:57:21.23ID:f2ZFKBK8 zshって真面目にドキュメント読もうとすると
機能多すぎて嫌になるよねw
機能多すぎて嫌になるよねw
805デフォルトの名無しさん
2021/08/04(水) 17:57:42.62ID:f2ZFKBK8 おや?chromeから書き込めた???
806デフォルトの名無しさん
2021/08/04(水) 17:58:08.01ID:f2ZFKBK8 あ、janeからも書き込めたw
禁止解除されたかwww
禁止解除されたかwww
807デフォルトの名無しさん
2021/08/04(水) 17:59:30.91ID:f2ZFKBK8 っていうか普通にzshインストールすりゃいいだけじゃん
808デフォルトの名無しさん
2021/08/04(水) 18:18:14.91ID:VUbcTRKP 別にメチャクチャに壊されても構わんのだろう?
809デフォルトの名無しさん
2021/08/04(水) 18:21:21.06ID:f2ZFKBK8 そのシェルスクリプトの最初に
if [ $BASH_VERSION ]; then
sudo apt-get update && sudo apt-get install -y zsh
zsh "$0" "$@"
fi
とか書いておけば動くんじゃね?www
if [ $BASH_VERSION ]; then
sudo apt-get update && sudo apt-get install -y zsh
zsh "$0" "$@"
fi
とか書いておけば動くんじゃね?www
810デフォルトの名無しさん
2021/08/04(水) 19:21:42.69ID:ZkQ7EvI3811デフォルトの名無しさん
2021/08/04(水) 19:31:41.64ID:f2ZFKBK8 zshで動くものをbashで動かしたら何が起きるかわからんじゃん
そのzshスクリプトはエラーでちゃんと停止するんか?
想定とは違うディレクトリで中途半端に動いたりしないんか?
そのzshスクリプトはエラーでちゃんと停止するんか?
想定とは違うディレクトリで中途半端に動いたりしないんか?
812デフォルトの名無しさん
2021/08/04(水) 19:36:30.26ID:ZkQ7EvI3 >何をするのかもわかってるだろう
のうちだろ
動作させないと何が問題かわからんし、そもそもどの程度の知識かもわからんし
仮に何かあっても、全く何もわからないのにbashで動くようにしたいという望みを持った勉強代だなw
動作させないと何が問題かわからんのだから、問いに対して動かしてみろと言うのは当たり前の話でしかないだろう
何を言いたいのかわからんぞ
のうちだろ
動作させないと何が問題かわからんし、そもそもどの程度の知識かもわからんし
仮に何かあっても、全く何もわからないのにbashで動くようにしたいという望みを持った勉強代だなw
動作させないと何が問題かわからんのだから、問いに対して動かしてみろと言うのは当たり前の話でしかないだろう
何を言いたいのかわからんぞ
813デフォルトの名無しさん
2021/08/04(水) 19:56:41.44ID:oNOmhdBC どうなるか分からんけどとりあえず動かしたいならdockerコンテナ上で試せばいい
814デフォルトの名無しさん
2021/08/04(水) 20:04:22.89ID:vF9ccavM815デフォルトの名無しさん
2021/08/04(水) 20:09:58.00ID:ZkQ7EvI3816デフォルトの名無しさん
2021/08/04(水) 21:08:01.90ID:vF9ccavM817デフォルトの名無しさん
2021/08/04(水) 21:28:34.60ID:ZkQ7EvI3 >>816
何が知らんがなだよw
「メチャクチャ」に「壊される」からは悪意を想像しても不思議ではないと思うけどなあ
そんななんかダメなとこあったらメチャクチャに壊すスクリプトもそう無いだろうからな。そんなのばっか書いてるの?
何が知らんがなだよw
「メチャクチャ」に「壊される」からは悪意を想像しても不思議ではないと思うけどなあ
そんななんかダメなとこあったらメチャクチャに壊すスクリプトもそう無いだろうからな。そんなのばっか書いてるの?
818デフォルトの名無しさん
2021/08/05(木) 00:09:48.84ID:r/zZzNU4 >>817
超ふしぎじゃ。
壊す主体は、動作の読めないスクリプトに決まってるやろ。
読解力ゼロなんか。w
> そんななんかダメなとこあったらメチャクチャに壊すスクリプトもそう無いだろうからな。そんなのばっか書いてるの?
たまたまrm *になるだけでおしまいやぞ?
超ふしぎじゃ。
壊す主体は、動作の読めないスクリプトに決まってるやろ。
読解力ゼロなんか。w
> そんななんかダメなとこあったらメチャクチャに壊すスクリプトもそう無いだろうからな。そんなのばっか書いてるの?
たまたまrm *になるだけでおしまいやぞ?
819デフォルトの名無しさん
2021/08/05(木) 02:16:14.66ID:uXuSxWIZ >>818
何を言っているんだかな
何が「主体」だか、当たり前だろ。その主体に悪意があるかもしれないって話だろう
「メチャクチャ」に「壊される」が悪意を持って書かれたスクリプトを表すと読めても不思議ではないって話なんだが
読めないのはどっちなんだかなw
たまたまとか頻度がわからんな。すぐにそんなの想像してしまうぐらいの頻度で書いてるのか?w
とか、もうアレだけどw とりあえず単なる杞憂でしかないのは質問者の最初のレスで明らかだし、自己責任の範囲。やってくれないとレスしようがないし、
やってちょっとはその具体的な実行結果を出してくれたことにより、原因他が明確(*)になってんだから、ただの蛇足もこれまでにしとこな
*)お前の最初のレスもそれにより=ほとんど何も知らない人だったとわかってだろう?w
何を言っているんだかな
何が「主体」だか、当たり前だろ。その主体に悪意があるかもしれないって話だろう
「メチャクチャ」に「壊される」が悪意を持って書かれたスクリプトを表すと読めても不思議ではないって話なんだが
読めないのはどっちなんだかなw
たまたまとか頻度がわからんな。すぐにそんなの想像してしまうぐらいの頻度で書いてるのか?w
とか、もうアレだけどw とりあえず単なる杞憂でしかないのは質問者の最初のレスで明らかだし、自己責任の範囲。やってくれないとレスしようがないし、
やってちょっとはその具体的な実行結果を出してくれたことにより、原因他が明確(*)になってんだから、ただの蛇足もこれまでにしとこな
*)お前の最初のレスもそれにより=ほとんど何も知らない人だったとわかってだろう?w
820デフォルトの名無しさん
2021/08/05(木) 08:32:13.08ID:RD0C5s2g ども、801です、盛り上がらせてしまいすみません。
どちらかというと興味として、素朴に、zshもbashもshベースで割と簡単に移植できるのかな? と
思ったんですが、結局それはNOってことですかね?
ちなみにzparseoptsというのはあからさまにzshの関数ぽいですが、
他に、どうやら変数(の中身)の展開に違いがある? ような感じでスクリプト中で呼ばれるコマンド
の引数に正しい値が渡らなかったりしてるようです。
どちらかというと興味として、素朴に、zshもbashもshベースで割と簡単に移植できるのかな? と
思ったんですが、結局それはNOってことですかね?
ちなみにzparseoptsというのはあからさまにzshの関数ぽいですが、
他に、どうやら変数(の中身)の展開に違いがある? ような感じでスクリプト中で呼ばれるコマンド
の引数に正しい値が渡らなかったりしてるようです。
821デフォルトの名無しさん
2021/08/05(木) 09:00:33.95ID:zI5dwTpx ・POSIX(sh)のだけ使ってる
・bashにもzshにもあるのを使ってる
は、問題があったら調整ちょっと手直し程度
・zshにしかないのを使ってる
は、当然、該当部分の書き換えが必要
少しは知っているのならYESだが、
ちょっと何も知らないようなので自分で勉強する気やる気があるのかによる。今はNOだろな
・bashにもzshにもあるのを使ってる
は、問題があったら調整ちょっと手直し程度
・zshにしかないのを使ってる
は、当然、該当部分の書き換えが必要
少しは知っているのならYESだが、
ちょっと何も知らないようなので自分で勉強する気やる気があるのかによる。今はNOだろな
822デフォルトの名無しさん
2021/08/05(木) 09:53:44.33ID:r/zZzNU4823デフォルトの名無しさん
2021/08/05(木) 10:12:10.01ID:hsHiTAxc shベースはPOSIX shベースって言えばいいと思うけど
bashとzshに共通のものってなんて言えばいいんだろうね
bashとzshに共通のものってなんて言えばいいんだろうね
824デフォルトの名無しさん
2021/08/05(木) 13:21:07.18ID:zot0pp1g どちらもkshの美味しいとこ取りってとこ?
825デフォルトの名無しさん
2021/08/05(木) 16:55:00.26ID:zI5dwTpx826デフォルトの名無しさん
2021/08/05(木) 17:17:04.23ID:zI5dwTpx >>823,824
bash/zshフレンドリー?w
共通仕様の公式なドキュメントがあるわけでもなく、書いた人の知見頼りだろから、そう何か明確な名称的なのはなさげかなあ
kshからのが多そうね。bashが最初でzshでも採用ってなかったかなあ
bash/zshフレンドリー?w
共通仕様の公式なドキュメントがあるわけでもなく、書いた人の知見頼りだろから、そう何か明確な名称的なのはなさげかなあ
kshからのが多そうね。bashが最初でzshでも採用ってなかったかなあ
827デフォルトの名無しさん
2021/08/05(木) 18:09:04.60ID:r/zZzNU4828デフォルトの名無しさん
2021/08/05(木) 18:11:34.02ID:zI5dwTpx829デフォルトの名無しさん
2021/08/05(木) 19:53:25.65ID:r/zZzNU4 >>828
おまえがな!w
おまえがな!w
830デフォルトの名無しさん
2021/08/05(木) 21:42:19.84ID:2EEp5i6b ばーかばーか
831デフォルトの名無しさん
2021/08/05(木) 22:23:46.98ID:zI5dwTpx832デフォルトの名無しさん
2021/08/05(木) 23:29:03.88ID:vcYli3BC setコマンドで位置パラメータを指定するときに、
引用符でかこわれていない変数がフィールド分割されるかどうかって決まってたっけ?
setの仕様にはそれらしき記述はなし。
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_25
BashやYashでは分割されて,Dashでは分割されない。
$ bash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a
$ yash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a
$ dash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a b c
引用符でかこわれていない変数がフィールド分割されるかどうかって決まってたっけ?
setの仕様にはそれらしき記述はなし。
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_25
BashやYashでは分割されて,Dashでは分割されない。
$ bash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a
$ yash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a
$ dash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a b c
833デフォルトの名無しさん
2021/08/05(木) 23:45:20.11ID:r/zZzNU4834デフォルトの名無しさん
2021/08/06(金) 04:00:19.09ID:rcBy4jaU835デフォルトの名無しさん
2021/08/06(金) 14:52:24.37ID:j92KspJx836デフォルトの名無しさん
2021/08/06(金) 15:08:57.47ID:rcBy4jaU >>835
あのさぁ、なんで実行結果を書かないの?
やってみればすぐわかるだろ
$ bash -c '
> a="1 2 3"
> printf "/%s/" $a
> '
/1//2//3/
dash -c '
> a="1 2 3"
> printf "/%s/" $a
> '
/1//2//3/
まーーーーーーーーーったく同じ
あのさぁ、なんで実行結果を書かないの?
やってみればすぐわかるだろ
$ bash -c '
> a="1 2 3"
> printf "/%s/" $a
> '
/1//2//3/
dash -c '
> a="1 2 3"
> printf "/%s/" $a
> '
/1//2//3/
まーーーーーーーーーったく同じ
837デフォルトの名無しさん
2021/08/06(金) 17:19:21.97ID:j92KspJx >>836
いやさ,それの実行結果が一緒なのに,
$ bash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a
$ dash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a b c
こうなるのはおかしいだろってことだよ。
話わかってるか?
いやさ,それの実行結果が一緒なのに,
$ bash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a
$ dash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a b c
こうなるのはおかしいだろってことだよ。
話わかってるか?
838デフォルトの名無しさん
2021/08/06(金) 17:26:48.38ID:rcBy4jaU 消えな。いちいちデマ流すな。
dash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
a
dash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
a
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以外だったら?と書いてもいいけどな
939デフォルトの名無しさん
2021/10/04(月) 20:02:21.71ID:hDmlyFvp >>937,938
話にならんな
だからコマンドの(評価式の)判断はシェルスクリプトのifなどの制御文と関係ないって言ってるだろうに
>シェルスクリプトが真で1を返してる
今だに、全然わかってないのが明らかだな
>[ ] がコマンドだって知らない人がいるのかな?
って、自分で言ってるのに、本当はわかってないんだな
わかってないのにこう言った意味意図がわからん
話にならんな
だからコマンドの(評価式の)判断はシェルスクリプトのifなどの制御文と関係ないって言ってるだろうに
>シェルスクリプトが真で1を返してる
今だに、全然わかってないのが明らかだな
>[ ] がコマンドだって知らない人がいるのかな?
って、自分で言ってるのに、本当はわかってないんだな
わかってないのにこう言った意味意図がわからん
940デフォルトの名無しさん
2021/10/04(月) 20:16:18.32ID:seuesddr わかってないわかってない言うだけで
何も指摘してないなこいつw
何も指摘してないなこいつw
941デフォルトの名無しさん
2021/10/04(月) 20:18:16.08ID:hDmlyFvp 指摘してるのが読めないのな
いや読まない認めないだけか
いや読まない認めないだけか
942デフォルトの名無しさん
2021/10/04(月) 20:20:05.24ID:hDmlyFvp いや、手取り足取り教えてくださいかな
この意固地っぷりわからなさぶりは
元々のヤツよりよほどわかってなさげだなあ、何でそいつらの方がめんどくさいんだか
この意固地っぷりわからなさぶりは
元々のヤツよりよほどわかってなさげだなあ、何でそいつらの方がめんどくさいんだか
943デフォルトの名無しさん
2021/10/04(月) 20:25:10.55ID:seuesddr だからシェルスクリプトの真は1
if や真偽値ではなくて、終了ステータスを見る
[]はコマンド、その戻り値は終了ステータス
って言ってるだけですが?
if や真偽値ではなくて、終了ステータスを見る
[]はコマンド、その戻り値は終了ステータス
って言ってるだけですが?
944デフォルトの名無しさん
2021/10/04(月) 20:25:32.75ID:seuesddr ifは真偽値ではなくて、終了ステータスを見る
945デフォルトの名無しさん
2021/10/04(月) 20:31:27.73ID:hDmlyFvp まだ「言い張ってる」
やれやれ
単に「人に対してわかりやすい」単なる「算術結果」の「プリント」でしかないのに
結果が A/B でも構わない=制御文と「何も関係ないから」。そうでないのは単なる人に対しての場合の慣例だからだろうとわかりそうなものだが
そんなにBooleanが好きならやっぱりせっかくそのもである true/false 使えよと思わなくもない、制御文にもそのまま使えるのだし
やれやれ
単に「人に対してわかりやすい」単なる「算術結果」の「プリント」でしかないのに
結果が A/B でも構わない=制御文と「何も関係ないから」。そうでないのは単なる人に対しての場合の慣例だからだろうとわかりそうなものだが
そんなにBooleanが好きならやっぱりせっかくそのもである true/false 使えよと思わなくもない、制御文にもそのまま使えるのだし
946デフォルトの名無しさん
2021/10/04(月) 20:33:07.26ID:seuesddr 真偽値は1(0以外)と0だっているのに、trueとfalseだって勘違いしてんのかw
947デフォルトの名無しさん
2021/10/04(月) 20:38:29.57ID:hDmlyFvp はあ...
>真偽値は1(0以外)と0だっているのに
慣例およびCとかBooleanが明確にないとこはな、そんなの常識だろうに
真偽 Boolean値はある意味正式には true/false だぞ(YES/NOとかのとこもあるけどな)、それすらも知らないとか...
>真偽値は1(0以外)と0だっているのに
慣例およびCとかBooleanが明確にないとこはな、そんなの常識だろうに
真偽 Boolean値はある意味正式には true/false だぞ(YES/NOとかのとこもあるけどな)、それすらも知らないとか...
948デフォルトの名無しさん
2021/10/04(月) 20:40:08.73ID:hDmlyFvp 無知も大概にしろ、それもそんなくせに何か自分は知ってる風とか
ただただめんどくさいだけじゃん
てことで
ただただめんどくさいだけじゃん
てことで
949デフォルトの名無しさん
2021/10/04(月) 20:52:06.46ID:seuesddr > 真偽 Boolean値はある意味正式には true/false だぞ(YES/NOとかのとこもあるけどな)、それすらも知らないとか...
書いてある所持ってきてw
いっつも、何の根拠もなく
主張だけしてるよなお前
だから証拠付きつけられて負けてるんやで
書いてある所持ってきてw
いっつも、何の根拠もなく
主張だけしてるよなお前
だから証拠付きつけられて負けてるんやで
950デフォルトの名無しさん
2021/10/04(月) 20:54:23.61ID:hDmlyFvp モロ「手取り足取り教えてください」を自白w
少し調べればあるぞ、コンピュータサイエンスの常識だからな
本当に無知のくせにただただめんどくさいヤツだったとは
まあ、あとは自力で頑張れ。その使ってるナニかは自分で調べるためにもあるんだからな
少し調べればあるぞ、コンピュータサイエンスの常識だからな
本当に無知のくせにただただめんどくさいヤツだったとは
まあ、あとは自力で頑張れ。その使ってるナニかは自分で調べるためにもあるんだからな
951デフォルトの名無しさん
2021/10/04(月) 21:34:45.41ID:MQzfkP4R 終了ステータスは
(エラーが) [ 0:false:有りませんでした | 0以外:true:有りました ]
だと思ってたんだが
(エラーが) [ 0:false:有りませんでした | 0以外:true:有りました ]
だと思ってたんだが
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 [七波羅探題★]
- 防衛省、中国を完全論破www 「事前通告があったのは海自であって空自ではない」 高市早苗勝利 [175344491]
- 勃起させた状態でパンツを下ろすとチンコがバイィーンってなるだろ
- 【悲報】JA「全然米が売れなくて倉庫を圧迫してる。助けて!」米卸売り業者「安売りしたら赤字になる…助けて!」 [802034645]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ★4 [597533159]
- 高市早苗さん、もう自決でしか許されないレベルになる [402859164]
- 韓国政府、高市早苗の「竹島領土」発言にブチギレwwwwwwwwwwwwwwww [834922174]
