シェルスクリプト総合 その34

レス数が900を超えています。1000を超えると表示できなくなるよ。
2020/08/21(金) 15:17:55.64ID:mArnj/tT
シェルスクリプトに関する総合スレッドです。

全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。

シェルスクリプト総合 その33
https://mevius.5ch.net/test/read.cgi/tech/1584893550/
2020/11/10(火) 12:04:37.65ID:9k3Gk+Qe
ちなみに%zみたいな数値型の時差なら,POSIXに準拠しつつ出力できる。

https://git.io/JkTnV
822デフォルトの名無しさん
垢版 |
2020/11/10(火) 12:11:36.00ID:08CevRpc
正直言うと z 使うと保守が面倒臭くなる
手離れ悪い
2020/11/10(火) 13:09:49.18ID:2U042Zc8
>>821
なるほど、と思ったけど %z を得るための労力がでかすぎるな...
POSIXLY_CORRECT 知らなかった!勉強になる
POSIXLY_CORRECT=200809 date '%z' したら +900 が取れちゃったけど... (´・ω・`)

>>822
ISO 8601 が便利でなぁ、これに合わせたいんだよね
2020/11/10(火) 13:24:27.74ID:wuzfZjuS
来年サマータイム導入します(キリっ
2020/11/10(火) 13:51:26.00ID:9k3Gk+Qe
>>823
POSIXLY_CORRECTはあくまで引数の処理規則とかにしか影響しない
…筈。

はっきりした典拠がある訳じゃないが。
2020/11/10(火) 14:08:32.86ID:2U042Zc8
>>825
なるほど... ありがとうございました!
2020/11/11(水) 06:40:35.05ID:AeLDZcCA
>>659
グルーランゲッジだな
パイプ間の1つ1つのプログラムは言語が別別でもよい
2020/11/11(水) 08:59:35.27ID:KkaNKXcC
>>827
膠っていう考え方ね。
2020/11/11(水) 16:14:40.51ID:o7ye760s
合成の誤膠って奴かな?
830デフォルトの名無しさん
垢版 |
2020/11/11(水) 17:25:57.68ID:2Y4tzM/7
シェルスクリプトで済むんなら使った方が良い。
2020/11/11(水) 17:29:00.12ID:uSbtgdeR
結局シェルスクリプトが一番適切だって思うから、みんなシェルスクリプトを使うわけで
そのあとシェルスクリプト使って後悔するなら、シェルスクリプト力(技術力)をつけたほうが良いってことだよ
他の言語に乗り換えるってのは、適切じゃない言語を使うってこと。単に慣れてるだけ。
832デフォルトの名無しさん
垢版 |
2020/11/11(水) 17:41:19.52ID:EWytaMfd
>>831
アホがおるw
2020/11/11(水) 18:13:47.22ID:KDi/CYCF
>>831
論理があべこべだな
認知に相当の歪みがあると推察されるので、その事実を自覚するのは難しいだろうけど...
2020/11/11(水) 18:15:50.79ID:uSbtgdeR
ほら、反論なしと(笑)
2020/11/11(水) 19:29:10.44ID:KFC8J5w+
真面目に反論する気にもならないアホな論てあるんやで
自覚ないとおわかりになられんでしょうけど
2020/11/11(水) 20:20:09.72ID:1NS/Ttdd
シェルスクリプトの欠点の一つとして
シェル変数を気軽に上書きできるという点がある
うっかりシステムに関係する変数を書き換えると
大騒ぎになるかも
2020/11/11(水) 20:37:56.82ID:auS5YaT3
システムに関係するシェル変数ってなに?
他の言語じゃその変数を書き換えることは無理なの?
2020/11/11(水) 20:46:46.52ID:KFC8J5w+
うっかり=意図せずにだろ
他の言語では環境変数を書き換えるという明確な意思がなければ変わらないだろう
2020/11/11(水) 21:13:01.49ID:auS5YaT3
え?システムに関係するシェル変数って環境変数のことだったの?
環境変数を書き換えても、他のプロセスには影響ないんだけど?
それでシステムに影響がある環境変数の名前はなに?
2020/11/11(水) 21:13:24.60ID:VcjQlt7C
>>836
readonlyというのがあるじゃん
2020/11/11(水) 21:14:32.87ID:KFC8J5w+
自分が読めないだけだろ
そしてそのしつこさは...w
2020/11/11(水) 21:17:25.54ID:KFC8J5w+
>>840
localというのもあるなw
2020/11/11(水) 21:20:32.92ID:auS5YaT3
シェル変数といったり環境変数といったり
めちゃくちゃだよなw
2020/11/11(水) 22:41:53.94ID:s9R9EURF
path=...
があるだけで、以降の処理はだいたい残念なことになってまう、みたいなシェルはあったような。

でも、しゃあない。
そういう事故は飲むしかない。
イヤでもあきらめろ。
2020/11/12(木) 00:04:37.86ID:BEseEgkn
シェルスクリプトが環境変数の書き換えに弱いというのはまだ分かるんだが,
それを「シェルスクリプト特有の」欠点みたいに呼ぶのはよく分からん。

・環境変数を「意図せず」書き換えてしまうこと
・環境変数を「悪意を持って」書き換えられること
こういう事態に弱いのは別にシェルスクリプトに限ったことじゃないでしょう。

具体例を出さなきゃ納得できない人もいそうなんで一つだけ挙げますね。
$LD_LIBRARY_PATH。
2020/11/12(木) 01:27:16.52ID:V4Sk/AjY
環境変数を意図せず書き換えてしまうとは、環境変数を触るつもりが全くないのにってことでしょ
シェルスクリプトに限らずって、他にそういうのなんかあったっけ
847デフォルトの名無しさん
垢版 |
2020/11/12(木) 04:20:19.45ID:kQyOkhX7
環境変数ってUnixやLinuxに限らず
Windowsにだってめちゃくちゃ使われてるぞ
2020/11/12(木) 04:34:19.99ID:1ZLHCloS
環境変数PATH、有名なので間違えて書き換えたりしない
LD_LIBRARY_PATH、名前がかぶることはまずない

なぁ、実害あるん?
2020/11/12(木) 05:19:49.92ID:DEOHcohA
シェルスクリプトは変数と環境変数のアクセスする違いがないってことだろうに
あくまでもローカル変数と使うつもりだったのにうっかりという
システムでの環境変数って言ってもそんな有名どころのではなくてもオレオレでというのはあるだろうに
視野が広いのか狭いのかなんなのか、ズレテルな
850デフォルトの名無しさん
垢版 |
2020/11/12(木) 08:59:00.57ID:NniWGdD3
プログラムのテストでシェルスクリプト使うだろ。
使わないのはテストしないからか
2020/11/12(木) 10:16:41.65ID:1ZLHCloS
>>849
変数には小文字を使いましょうってだけだなw
システムに関する環境変数なんてわずかしかないのに
その程度で苦労してんのか?
2020/11/12(木) 12:18:32.48ID:1kfP87l6
>>851
「苦労」の話を誰かしたか?
シェルは、あやしいところがあるよなあ、と言い合ってるだけなのに。
2020/11/12(木) 12:21:54.36ID:1kfP87l6
>>845
> ・環境変数を「意図せず」書き換えてしまうこと
シェル以外にある?
思い当たるのはmakefileくらいか。

だいたいは、環境変数はかなり特別扱いされてるよなあ。
2020/11/12(木) 13:43:18.74ID:OA6SFmf/
環境変数を「意図せず」書き換えてしまうことはあるが
その結果、問題が発生することはないって話だよ

だって環境変数を書き換えたとしても、最悪でも
自分とその子孫のプロセスにか影響がないから
システムを壊したりすることがない
2020/11/12(木) 13:48:31.03ID:1kfP87l6
>>854
> システムを壊したりすることがない
誰がそんな話を?
2020/11/12(木) 14:09:44.21ID:OA6SFmf/
>>836でかいてあるだろ

> うっかりシステムに関係する変数を書き換えると
> 大騒ぎになるかも

システムに関する変数を書き換えても、自分のプロセスとそれ以下にしか
影響がないから大騒ぎになんかならん

それにシステムに関する変数といっても数えられる程度しかない
857デフォルトの名無しさん
垢版 |
2020/11/12(木) 14:57:57.53ID:kygpD0ad
プログラムってシェルから起動するんじゃないの?
858デフォルトの名無しさん
垢版 |
2020/11/12(木) 15:13:27.21ID:f5BAQJxF
fork元がshellならそうだね
2020/11/12(木) 15:30:36.85ID:1kfP87l6
>>856
大物の起動スクリプトとかでやらかすと、騒ぎにはなりうる。
init系とか.*rcとかcronとかでも。
初見ではわけがわからんかったりするしな。

まあ、個人的には、そういうものだと思ってるが。
おかげでラクなところもあるし、しゃあない。
2020/11/12(木) 16:55:55.29ID:s02jb8N+
WindowsだとADと連携させたりして、レジストリのアクセス制御が容易とか、そういう話?
2020/11/12(木) 17:49:14.13ID:OA6SFmf/
>>859
> 大物の起動スクリプトとかでやらかすと、
だから何をやらかすんだよw

環境変数PATHを書き換えてしまったんだ
って「だけ」の話をしてるんか?

何をやらかしたのかを言わずに、
ずっとやらかししまうって言ってるだけじゃんか
2020/11/13(金) 02:11:25.86ID:Rmv9apnz
↑ こいつの知見の無さが半端ない。なのになぜか偉そう。頭悪そう
2020/11/13(金) 02:52:22.83ID:F3tZoo3K
わからないから質問してるのに
それにたいしてわからんのかと言われても
最初から、わからんと言ってるんだがとしか言えない

それで、何をやらかすんだ?
2020/11/13(金) 11:56:10.07ID:4qY0TlDt
具体的なケースはわりとどうでもいいから。
パスでもプロキシでも、環境変数はちょくちょく影響がある。

それが想像つかんのなら、もうからまんでええんちゃう?
2020/11/13(金) 12:58:09.35ID:es502k4w
複数のシェルスクリプトをカスケードで読む場合
変数の管理がめんどくさくなるかな
sourceしたりして他のシェルスクリプトと非同期で
動かすとさらに複雑になる
2020/11/13(金) 13:19:38.00ID:A88QmKc9
>>864
逃げるなよw
具体的なケースが重要

PATH変数とHTTP_PROXY変数だっていいたのだろうが "それだけ" だろう?
しかもシステム設定を変えるわけじゃない。
何度も言うが自分と子プロセスにしか影響がない。
意図せず変更してしまう可能性がどれだけあるのかと
あと環境変数じゃないなら小文字使えや
2020/11/13(金) 13:23:59.15ID:A88QmKc9
>>865
また知ってる単語を使ってみましたみたいな文章だなw
カスケードで読むってなんだよ。誰がそんな用語使ってるんだ?

シェルスクリプトが別なら変数は共有されない
非同期で動かすというなら、それぞれ別のサブシェルになるから
これも変数は共有されない

sourceしたりというなら、グローバル変数のことだろうが
それなら、シェルスクリプトはグローバル変数しかないから
大規模に向かないって言えばいいだけのことだろ?

グローバル変数しかなくてもプリフィックス(を名前空間として考える)を
変数名につければいいだけだがな。それはPOSIXにこだわらないなら
localとかtypesetでローカル変数作れるし
2020/11/13(金) 14:48:01.16ID:4qY0TlDt
>>866
影響のでかたについては説明済み。
http_proxy系環境変数は一般的に小文字。

逃げてるというならそれでいい。
めんどくさいアホの相手はもうおしまい。
2020/11/13(金) 15:20:10.18ID:S1mNTw0c
結局,「自分が思う(無根拠な)あやうさ」
を放言した結果,鉞が四方八方から飛んできて収集付かなくなった感じかね。

元の発言
> シェルスクリプトの欠点の一つとして
> シェル変数を気軽に上書きできるという点がある
> うっかりシステムに関係する変数を書き換えると
> 大騒ぎになるかも
からしてまあシェルスクリプト分かってんのかってツッコみたくなる点が幾つもあるし。
もう散々上で叩いたからこれ以上は責めるのを止すが。
2020/11/13(金) 18:14:52.09ID:4qY0TlDt
それは双方同等。
「自分が思う(無根拠な)大丈夫さ」だから。

ま、一回事故らんと身に染みないことではある。
2020/11/13(金) 18:21:34.11ID:A88QmKc9
>>868
だから影響の出方は
"僅かな"有名な環境変数を書き換えると
自分と子プロセス"だけ"に影響があるって話でしょ?
ずーっとそういってる

大した影響がないと
2020/11/13(金) 18:22:01.01ID:A88QmKc9
>>870
実際に事故ったときの
環境変数の名前は?
2020/11/13(金) 18:27:23.64ID:A88QmKc9
自分の体験談を言えばいいだけだと思うんだがねぇ
たまたま自分のアプリで LD_LIBRARY_PATHという変数を使っていたら
これと同じ環境変数を○○アプリが使っていて困りましたとかさぁ

実際の体験談ね。架空の体験談じゃなくてw
2020/11/13(金) 19:29:50.68ID:du2laNOa
PATHを書き換えて、コマンドサーチパスの優先順位変わって意図しないバージョンのコマンドを実行してしまって、コマンドの互換性に問題あって、大事なファイルを破壊してしまったとか
そういうのはあるんじゃない
2020/11/13(金) 19:55:53.16ID:A88QmKc9
>>874
それはあると思うよ。

だからうっかりシステムに関係する変数を書き換えると大騒ぎになるかもというが
実際には注意が必要なのはPATH変数ぐらいの話だよねという結論に俺はしたいわけw
2020/11/13(金) 21:49:53.46ID:uCeIaRFr
>>869
>四方八方から飛んで
そのレスの前で飛ばしてるのは一人だと思うが
2020/11/14(土) 00:25:29.47ID:ZrW/GOpe
>>870
どっちもどっち論に逃げずにさ,
一つだけでもいいから実例をあげてくれるだけでいいんだよ。
2020/11/14(土) 00:37:43.34ID:3AniUInE
>>877
もうええから。
おのれが事故るまでわかるまい。
2020/11/14(土) 12:11:16.48ID:ZrW/GOpe
ここまで問いつめて一つも実例が出ない……。
あのね,自分の考えを矯正せざるえない正しい情報は耳障りかも知れないけど,
もう一度聞いてくれ。
「環境変数(⊂シェル変数)を外部から書き換えて,システムに損害を及ぼす」
ことは可能だけど,
シェル引数がプロセス間でどう引き継がれるかというのはPOSIXで定められていて,
要すれば「変数の書き換えの影響が及ぶのはその書き換え後にそのプロセスから
遂行したシェル(スクリプト)のみ」っていう決まりなのよ。
で,「変数を書き換えるとシステムに損害を及ぼす」ようなシェルスクリプトっていうのは
「システムを管理するシェルスクリプト」であって,
そんなシェルスクリプトを「遂行する前に」変数を書き換えられるような状態においては,
もはや「環境変数の書き換え」なんていう攻撃℃闥iを取らなくても,
簡単にシステムをぶっ壊せる。
逆に例えばマトモな許可設定がなされてるサーバーに対して,
クライアントが環境変数を書き換えてサーバーのシステムを壊すなんてことはできない。
2020/11/14(土) 12:14:10.37ID:ZrW/GOpe
はぁ〜〜無駄な熱量を使っちまった……
バカは放っておくのが一番なのは理解しているんだが,
初学者がもしもこのバカの発言を間に受けたら
勉強が進んで己の知識を修正するまで
間違った知識で行動する訳で,それは可哀そうなのでね。
881デフォルトの名無しさん
垢版 |
2020/11/14(土) 12:19:51.30ID:WE59Iknb
シェルスクリプトはセキュリティホール
揺るぎない真実に向き合え
2020/11/14(土) 12:30:38.87ID:kdUuCuZx
>>879
攻撃の話はしてないよ
単に環境変数を書き換えることで他のプロセスに影響を与えることはできるけど
そもそもその環境変数なんてわずかしかないんだから
大騒ぎするまでのことはないよねって話してる

それに対して問題がー、問題がーってしつこく言ってるやつが居るから
お前実際にどんな問題が起きたことあるんだ?って聞いてるんだが
その答えは帰ってこないし、帰ってきてもそれだけだよね?程度の話だった

これがここまでの結論
883デフォルトの名無しさん
垢版 |
2020/11/14(土) 12:35:19.46ID:QzputhfI
日本語がぎこちないので ID:ZrW/GOpe は馬鹿確定
2020/11/14(土) 13:34:21.21ID:ZrW/GOpe
知識で勝てなくて悔しいのう
2020/11/14(土) 13:42:24.75ID:5XkrS48F
俺が実際どんな問題があった?って聞いてるんだから
俺の話を横取りするな
2020/11/14(土) 14:45:22.49ID:i/Cc0DGY
自分も具体例を聞きたい
2020/11/14(土) 14:48:05.38ID:DnZAmAgg
ワイもワイも
2020/11/14(土) 15:46:11.26ID:hNMhXONs
セキュリティの問題ではないけど
PWDをシェルスクリプトの中で変数として使うと
システムに勝手に書き変えられて
思ったように動かないかもしれないな
889デフォルトの名無しさん
垢版 |
2020/11/14(土) 21:48:21.52ID:9DKCECFD
責任の遂行
2020/11/14(土) 23:28:38.65ID:ZrW/GOpe
>>888
そうそう,こういう具体例でいいのよ。
ちなみにこの場合,変数$PWDじゃなくて
命令としてpwd(1)を使うとかすれば回避できる。
2020/11/14(土) 23:40:33.62ID:1QU8t+0x
シェルスクリプト以外でPWDを使うことってあるんだろうか?
そもそもPWDはシェル変数ではあるが環境変数なのか?
他の言語でPWDがあることを前提としていいのだろうか?

またシェルスクリプトとかでは起動時に現在のカレントディレクトリに
設定されると思うので影響があるのは自分自身だけだろうな
2020/11/15(日) 09:04:33.27ID:bhsguIlX
ん? 相対名でファイルをオープンするときとかどうなってると?
2020/11/15(日) 11:54:09.26ID:ofPGnU/6
>>892
PWDはただのカレントディレクトリを
変数に入れただけだよ

カレントディレクトリのことではない
cdしたときにシェル変数PWDとOLDPWDに
カレントディレクトリを入れるだけのこと

他の言語ではPWDやOLDPWDは参照しない
環境変数でしかないから
2020/11/15(日) 18:03:22.63ID:h835C+/M
ていうかシェルでもPWDを参照することは少ないでしょう。
「カレントディレクトリ」を指し示したかったらpwdを使うかな。

ちなみに,当然分かっているとは思うけど,
C言語やPythonでも$PWDは参照できる。
ただまぁ,それをやってるプログラムは,$PWDを参照している
シェルスクリプトと同じくらい数少ないと思うけどね。
2020/11/15(日) 18:36:18.33ID:bhsguIlX
なるほど。
カレントディレクトリを知りたいときにPWDを参照したら楽かもねってだけか。
それ以外には影響を及ぼさない。
勝手にPWDに依存するスクリプトやコマンドはあるかもしれんがw
2020/11/15(日) 18:41:31.75ID:ofPGnU/6
え?普通$PWDの方を使うでしょ
pwdにメリットなんてあるの?
デメリットならいくつか言える

外部コマンドなので遅い
ほどんどの場合、結局変数に入れて使う
変数に入れる時に標準出力経由でやるから更に遅い
変数展開が使えないから、/foo/bar/baz からbazだけを取るのが面倒で遅い
(まずありえないけど)改行で終わるディレクトリが正しく取れない(工夫すれば取れるけど)

唯一のメリットはPWDの内容と実際のカレントディレクトリが違う場合が
あることだけど、PWDはシェルスクリプト起動時に初期化されるので
意図的に変更しないとそうはならない。どうしてもPWDを
カレントディレクトリに初期化したいなら cd . でも実行すればいい

> C言語やPythonでも$PWDは参照できる。
それはPWDが環境変数としてエクスポートされてる場合でしょ?
unset PWDしてから起動しても参照できるって保証はあるの?
2020/11/15(日) 18:43:40.53ID:ofPGnU/6
pwdはカレントディレクトリを画面に表示するだけのときにしか使わないな
カレントディレクトリを利用する(変数に入れる)場合は$PWDを使う
898デフォルトの名無しさん
垢版 |
2020/11/15(日) 18:45:36.14ID:QB7zB470
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
> PWD
> Set by the shell and by the cd utility. (...) Assignments to this variable may be ignored.
2020/11/15(日) 18:47:38.69ID:h7nWKXR3
$ mkdir x
$ ln -s x y
$ cd y
$ pwd
/work/tmp/y
$ echo $PWD
/work/tmp/y
$ pwd -P
/work/tmp/x
2020/11/15(日) 18:50:20.68ID:ofPGnU/6
書いておいてなんだけど、改行で終わるディレクトリなんて作ったことないからやってみたw

cd /tmp
mkdir "abc

"

こんな感じで普通に作れるね。移動して(移動するときも cd "abc

" ってやらないとだめw)

echo "[$PWD]" したらちゃんと改行が入ってる

pwdもコマンド打つだけなら改行が入ってるけど
dir=$(pwd) とかすると末尾の改行が消えてdir変数に入る

回避方法は dir=$(pwd; echo _); dir=${dir%_} とすること
末尾の改行が消えないように _ とかを追加しておいて、変数展開を使って消す
2020/11/15(日) 18:53:44.48ID:ofPGnU/6
>>898
> Assignments to this variable **may** be ignored

つまり無視されるかもしれないし、無視されないかもしれないってことね。
事実 PWD にカレントディレクトリと異なる値を入れることはほとんどのシェルで可能
2020/11/15(日) 18:56:56.26ID:ofPGnU/6
>>899
何がいいたいのか知らんけど、
pwd -P の結果をPWDを使わずにほしいという話なら
cd -P を実行すればいいよ

dir=$(pwd -P) ・・・ 外部コマンド(遅い)+コマンド置換(遅い)
で二重に遅くなるけど

cd -P; dir=$PWD なら 内部コマンド(速い)+コマンド置換なし(速い)
カレントディレクトリが移動してしまうという副作用があるけど必要なら戻せばいい
2020/11/15(日) 18:57:41.90ID:ofPGnU/6
訂正

pwd -P の結果をpwdを使わずにほしいという話なら
cd -P を実行すればいいよ
2020/11/15(日) 19:02:15.10ID:h7nWKXR3
bash$ type pwd
pwd is a shell builtin
2020/11/15(日) 19:03:42.80ID:ofPGnU/6
お、pwdはビルトインコマンドだったかw
じゃあそこは訂正

コマンド置換になるから遅い だけだな
これで数千倍ぐらい遅くなる
2020/11/15(日) 19:16:41.84ID:h7nWKXR3
$ dash
$ readonly PWD
$ cd x
dash: 3: cd: PWD: is read only
$ echo $PWD
$ /home/hoge
$ pwd
$ /home/hoge/x
2020/11/15(日) 19:20:48.28ID:ofPGnU/6
>>906
嫌だからそれがどうかしたんか?w
自分の結論を言わんと
ただ必死な姿にしか見えんぞ
2020/11/15(日) 19:23:24.34ID:h7nWKXR3
お遊びに付きあってあげているだけさ。気にするなよw
2020/11/16(月) 02:15:26.25ID:4uoBNdLM
>>905
>お、pwdはビルトインコマンドだったかw

一応/bin/pwdもあるね。
これの場合、子プロセスのディレクトリは親から引き継がれてるからおk,ということかな。
2020/11/16(月) 09:46:48.16ID:VPqCGhU1
>>896
cd .してから$PWDを利用
←これやなシェルスクリプトの親プロセスで
readonly PWDされても問題ないし。
2020/11/16(月) 10:42:21.57ID:ZICsfNV8
> readonly PWDされても問題ないし。

readonly するのは誰?
いや、自分でやっておいて
誰かにreadonly されたー!って叫ぶのかなと(笑)
912デフォルトの名無しさん
垢版 |
2020/11/16(月) 12:53:31.23ID:sF1WJXNT
改行コードってディレクトリ名とかファイル名の禁止文字じゃないのかω
勉強になったわωω
2020/11/16(月) 13:39:21.12ID:IuVgP+7M
findとかxargsとか
改行コードが禁止文字じゃないから
1行1ファイル名にできなくて
仕方なくNULL文字区切りができたんだよな

1行1ファイル名ならそんな機能いらなかったのに
NULL文字区切りって改行対策だけの機能だから
2020/11/16(月) 14:00:41.03ID:Ks5/uhC8
>>912
「¥0」「/」以外の全バイトが有効なんだっけか。
Windowsは締めすぎだが、UNIXは緩すぎ。w
2020/11/16(月) 15:33:23.40ID:VPqCGhU1
>>911
>>906
2020/11/16(月) 15:35:18.75ID:VPqCGhU1
>>913
find使うなら、xargsじゃなくて
-exec使った方がいいと思う。
ファイル区切りとか考える必要がない。
2020/11/16(月) 16:02:01.39ID:UFAKJ9cA
>>914
ちなmacOSではUTF-8として正当かチェックがあった気が....
あとFinder上でならスラッシュも使える。がコロンが使えない。
いえ、macOSはUNIXですw
2020/11/16(月) 16:20:12.32ID:T0PHjpz3
>>916
-execはファイル一個ごとですよね、と一瞬思ったけど、
それが気になる場合は {} + ですか。

しかし {} + って昔からあった?
ネットで見つけた4.3BSDのマニュアルには {} + の記述はないっぽい。
http://www.retro11.de/ouxr/43bsd/usr/man/cat1/find.0.html
2020/11/16(月) 16:53:12.65ID:VPqCGhU1
>>918
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/find.html
ここのRATIONATE節を読むといい。
2020/11/16(月) 17:48:34.34ID:EzTwR9A1
PWD を環境変数にするという発想は無かったな。
しちゃいかんとまでは思わないが意義があるとも思わない。
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況