探検


OS XをUnixとして使ってる人の為のスレ 18 [無断転載禁止]©2ch.net

レス数が900を超えています。1000を超えると表示できなくなるよ。
2016/05/06(金) 04:16:59.70ID:Kkeqv6zz0
OS X を Unix として使ってる人の為のスレです。

■関連スレ
Fink 使ってるの洩れだけなのかっ!?【rev.2】
http://potato.2ch.net/test/read.cgi/mac/1166780804/
MacPorts でワクワク UNIX ライフ Part 3
http://potato.2ch.net/test/read.cgi/mac/1315401888/
Homebrew でゾクゾク UNIX ライフ2
http://potato.2ch.net/test/read.cgi/mac/1309843497/
AppleScript アップルスクリプト 質問、発表 6
http://potato.2ch.net/test/read.cgi/mac/1387630245/
【中の人】Automator【小人】3人目
http://potato.2ch.net/test/read.cgi/mac/1416219152/
【タマニハ】MacにLinux入れようよ!その4【チガウノ】
http://potato.2ch.net/test/read.cgi/mac/1277458655/
Mac de Emacs総合スレ v7
http://potato.2ch.net/test/read.cgi/mac/1328699139/
Mac Vim 再び
http://potato.2ch.net/test/read.cgi/mac/1133534694/
Macでプログラミング{11}
http://potato.2ch.net/test/read.cgi/mac/1414566499/

■前スレ
Mac OS XをUnixとして使ってる人の為のスレ 17
http://potato.2ch.net/test/read.cgi/mac/1383436068/
2023/11/29(水) 01:20:50.86ID:78Ym/uzH0
あ、ちょっとわかりました、「が」というファイル(だけ)があるとき
% echo * | iconv -f utf-8 -t utf-16le | od -x -A n
304c 000a
% ls | iconv -f utf-8 -t utf-16le | od -x -A n
304b 3099 000a
2023/11/29(水) 01:24:32.70ID:78Ym/uzH0
>>829
なるほど
ところでAPFSのファイル名の扱いってHFS+と同じと思っていんですかね
そのへんの仕様に関するドキュメントが見当たらないような気がするのですが
2023/11/29(水) 09:45:38.08ID:5rj6rJp90
ごめん>>829は間違い。Macのzshはワイルドカード展開でNFC正規化するらしい
だから>>830はlsが返してきてるほうがディスクに記録されてる形式だと思う

HFS+はファイルシステム側がファイル名をmodified NFD変換して保存する、apfsはしない
どちらもアクセス自体はどの形式でもできる、だったはず
ぐぐったらFAQがあった
ttps://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/APFS_Guide/FAQ/FAQ.html
2023/11/30(木) 08:40:54.38ID:nnlSMUVx0
>>832
APFSはシェルから触ったら何もしないのかな? そういえば示申問題ってありましたよね
シェルでやればこんなことも(あ、5chのUnicode処理がわからないけど):
% ls
神 神︀ 神󠄀
見た目で区別が付かない(注: 環境による)。種明かしをすると
% ls -C | gsed -r 's/\s+//g' | iconv -f utf-8 -t utf-16le | od -x -A n
fa19 795e fe00 795e db40 dd00 000a
ちなみにデフォのsedの正規表現サポートに耐えられずGNU sedを使っています

一方Finderで示神(U+FA19)を作ろうとすると神にされてしまう。こっちは素のNFDですか?
2023/11/30(木) 17:49:14.45ID:nnlSMUVx0
>>832
>ごめん>>829は間違い。Macのzshはワイルドカード展開でNFC正規化するらしい

結局これって何のためなんですかね。コマンドラインでファイル名を扱うときの
「文字幅」問題を何とかしようとか?
しかし上でやったようにls等からファイル名を受け取とる場合もあるしなあ
2023/12/02(土) 09:15:38.20ID:6RnYjEce0
scutilというのがありますよね
「コンピュータの名前」に関して HostName, LocalHostName, ComputerName と
複数あるようですが、これらの関係・違いってなんですかね
2023/12/02(土) 09:24:10.33ID:mvveSJCp0
ComputerName: MacOSのFinderなどの表示で通常使われる名前
LocalHostName: Bonjourで使われる名前
HostName: UnixとしてのPosix系システムAPIで使われる名前
2023/12/02(土) 11:35:22.56ID:2TlsHpzr0
デフォルトではHostNameが空でLocalHostNameをHostNameとして使ってるように見える
Bonjour名は(LocalHostName).localになる

Montereyまではシステム環境設定の共有名を変えると
ComputerNameとLocalHostNameが同時に変更されたけど
Ventura以降はLocalHostNameしか変わらなくなって
ComputerNameを変えるには一般→情報→コンピュータ名を変えるというスタイルになった
2023/12/04(月) 08:41:02.31ID:ivTwpHIz0
>>836 >>837
なるほど、わかりやすい解説をありがとうございます
2024/01/07(日) 09:52:14.50ID:5ZhDjfPB0
Emacsの入れ方は何パターンかあるようですが、皆さんどうされてますか?

なんとなく、Emacs Mac Port版というのをhomebrewで入れてみたんですが、
ターミナルでemacsと入れてGUIのウインドウが立ち上がった後も、キー入力の
フォーカスがターミナルに残ってしまい、困っています。
2024/01/07(日) 10:25:16.33ID:pW5idtLf0
自分でビルドしてるよ
armとのuniversal版を作ってる
最近はgnutlsも必要だから
.appパッケージ内に全部納めるのかなり面倒
2024/01/07(日) 11:39:59.87ID:5ZhDjfPB0
おお素晴らしい
自分も大昔はビルドとかしたんですけど、その頃はMach-Oのアンダンプが上手くいかな
かったりして、手直ししたりして。今はもう楽な方に流されたい一方
2024/01/07(日) 14:35:23.13ID:Q0mteRmo0
MacPortsを使っているので、emacs-mac-appをインストールしています
sudo port install emacs-mac-app
するだけ
2024/01/07(日) 14:35:58.78ID:tLXSKpHl0
こんなのが
https://github.com/railwaycat/homebrew-emacsmacport/issues/359
When I launch it from the terminal with emacs it launches just fine but any text I write is instead written in the terminal.
2024/01/14(日) 23:00:24.44ID:AyxoBdsi0
おっとレスが遅くなってしまった
>>843 まさにそれですね

というわけで自分でビルドを、と言ってもこの方のパッチを使わせてもらっただけ
https://github.com/takaxp/ns-inline-patch

elispとかの場所に関して、上記のは.app内にある感じですね。コマンドラインから
起動すると実行ファイル相対で場所を探す? 変なsymlinkとかしちゃいけなそう
2024/01/23(火) 21:04:46.97ID:B2Qav+pg0
ターミナルでプロセスを見たらsoftwareupdatedというのが暴走している感じ
なのでsudo killしようとしたらOperation not permittedとなってしまいます。
何か設定が足りないのでしょうか。
2024/01/23(火) 21:13:03.69ID:Ob//khdg0
MacOSのrootはrootless機能で出来ないことがいっぱいだから

試してないけど、これとか参考になる?
https://superuser.com/questions/1658393/sudo-kill-9-pid-doesnt-kill-softwareupdated-in-mac
2024/01/24(水) 23:42:29.03ID:qAKC56wq0
やること終わったら静まるんじゃないのsoftwareupdated
動くのが嫌ならシステム環境設定で自動アップデートとか止めといた方がいいんちゃう、今後に向けて
2024/03/01(金) 09:05:59.92ID:gEN8Y5Xm0
/home/ユーザー名 みたいなディレクトリを用意したいのだけど、rootでも
作れないですね
今ってセキュリティーの関係で勝手な場所にディレクトリを作ったりはできないん
でしたっけ。あ、Sonomaです
2024/03/01(金) 10:38:03.20ID:T31HaMdf0
この辺とか? https://zenn.dev/tomoakinagahara/articles/955eec5d723fea
2024/03/01(金) 15:13:24.19ID:sPp4spVa0
>>849
横からだけどいい情報サンクス
2024/03/01(金) 15:37:34.55ID:gEN8Y5Xm0
>>849
なるほど。早速情報をありがとうございます。Linuxと場所を揃えたりしたかった
んですよね

macOSのファイルシステムは変わってますよね。そういえば、アプリケーション
なんかは、OS付属のアプリと自分で入れたアプリを重ねて表示してる感じですが、
(OS付属のアプリはread-onlyなどこかにあるようなので)、
あれはもしかしてああいうファイルシステムなのか単にFinderの機能なのか
2024/05/02(木) 13:28:10.81ID:1jwqoZHk0
うにくす
2024/08/08(木) 07:52:31.09ID:bGMyw13f0
外付けディスクをアンマウントしようとしたら、「ターミナルが使っている」と言われました
で、そのディスクを踏んでいるターミナルウインドウを閉じたけど駄目
プロセスをよく見るとloginが走っているのですね。邪魔くさい
これってログインシェルがどうたら... でしたっけ
2024/08/08(木) 17:49:28.18ID:fwhXw5jK0
loginは関係ないだろう
単にシェル(もしくはそこから起動された何かのプロセス)でワーキングディレクトリとして外付けディスクのどこかに居てっての普通(他にまさしく何かファイルを開いていたらもあるが)
ワーキングディレクトリを移動するか、そのシェル/プロセスが無くなればなんだが、ウィンドウを閉じてもか。まだなんかシェルプロセス(もしくはTerminal後の他のプロセス)が残ってたとかかな

プロセスのワーキングディレクトリは lsof でわかるよ
2024/08/08(木) 17:59:31.84ID:fwhXw5jK0
〜が使ってるからアンマウントできない/消すことできない って場合は、
sudo lsof -nP | grep '/Volumes/以下対象の'
で、大体はわかる。解決する
稀に引っかからないでどこで掴んでるねんって場合もある。Finder強制再起動したら解決したりする。それでもな場合も稀も稀にある
2024/08/16(金) 03:54:09.04ID:OQHvasuQ0
>>854
遅レスですみません、ちょっとわかったかもです。login関係「ある」

たまに新規タブで現在と同じディレクトリからスタートする新規シェルを起動するのだけど、
このときloginとzshが起動する。この後このタブ(シェル)内でcdしたときzshのcwdは変わるけど
loginは最初の場所に居続ける

で、「このlogin要るんかい」って思ったんですけど、要るのかな、と
2024/08/17(土) 02:55:55.47ID:4T2Y7LNq0
昔のUNIXみたいに、ログインシェルが起動してそこから子プロセスとして対話シェル等が起動、
みたいになってないですよね
2024/08/17(土) 03:19:05.56ID:3hM4DtMK0
UNIXではX環境へのログイン時にloginコマンドや~/.profileも実行されて仮想ターミナルではそれを引き継ぎますが
OSXではGUIログイン時には実行されず、ターミナルのタブごとにloginコマンドが動いたり~/.profileが実行されたりします
よく言われるbashの挙動の違いなんかもこれが原因
2024/08/17(土) 12:13:51.32ID:1AZ5xtUK0
>>856
"Terminal"だからな
loginで認証しloginが対話シェル起動しての手順は変わらない。単に認証しないってオプションでlogin起動してるだけな
Last login とか出てるでしょ、最初に

>新規タブで現在と同じディレクトリからスタートする新規シェル
どうやってやるのかわからんけど、そんなことできるならそりゃloginのwdはそうなるかもね
シェルが終了したらloginも終了するのが普通だから(*)、残るのが何か別の問題(おま環的な?)があるんだろうなとしか思えないな
*)見てみればわかるように、シェルを終了(exitとかcontrol-dとか)すれば、loginも消える、ウィンドウは残っていても

login要るか要らないかは、まあ要る/都合がいいんでしょとしか。そこに文句言ってもしょうがないような
2024/08/17(土) 12:19:39.82ID:1AZ5xtUK0
ちなみに。ちなみにでもないけどw、
シェルで*もう)何もしてないシェルしか動いてないのに、ウィンドウ閉じようとしたら まだなんか動いてるけどいいんか? 的なアラートが出るのがウザい(主に気分的に。終了と思ってるのに邪魔されるような)ので、俺はcontrol-d command-wするようにしてる
2024/08/17(土) 12:40:08.51ID:1AZ5xtUK0
>>857
どの昔のことなのかはわからんが、/etc/passwdが全権持っていた頃から、ログインシェルは対話シェル(/etc/passwdで指定された)で、loginがそのログインシェル=対話シェルを起動するだけじゃないの
862名称未設定
垢版 |
2024/08/17(土) 16:06:35.69ID:4AaANAdU0
シェルってコマンド実行環境ていう意味で?
自分以外のユーザのシェルは/usr/bin/passwdにしてある
2024/08/17(土) 16:56:12.13ID:Z2xTZ/Af0
PASSWD(5)
NOLOGIN(8)
864名称未設定
垢版 |
2024/08/23(金) 12:33:08.87ID:pa5QYZ5J0
2年くらいは
そのうちにそんな負けてへんやろ
どんだけ食って
2024/08/23(金) 13:20:27.72ID:1fa7rBVo0
体調を崩して
https://i.imgur.com/J1J1olS.jpeg
2024/08/23(金) 14:13:11.74ID:RXW3IivA0
食った量そのまま太るから
867名称未設定
垢版 |
2024/08/23(金) 14:47:58.12ID:pIIfaHgH0
ご来店いた
2024/09/30(月) 07:18:29.86ID:wY43CQZO0
/bin/bashを直接入れ替える方法ってあります?
拾ってきたスクリプトとかで/bin/bashを直接参照しているものがたまにあるけど
/bin/bashに非互換な部分があるようで & 上記のようなスクリプトを探してbashのパスを
書き換えるのが面倒なので

と思ったんですが、もしかして>>849さんの情報でいけちゃう?
2024/09/30(月) 09:58:14.32ID:WobHzjIA0
わざわざOSが弄りにくくしてる物を入れ替えようとか考えちゃダメよダメダメ
2024/09/30(月) 17:48:49.21ID:/TjkEmzr0
いいじゃないのぉ〜
2024/10/01(火) 08:49:17.53ID:dLrWAKRH0
>>868
拾ってきたスクリプトを書き換えれば?
2024/10/01(火) 10:06:01.54ID:oRwLDJa90
Sequoia に入っているbashは古いんだね。気づかなかった
2024/10/02(水) 21:46:42.19ID:F6kYb8qh0
ぶっちゃけUnix系はLinuxを中心に回っている感があり、彼らはGNUが前提のようで
macOSのBSD系と相入れない部分があったり
今日も、スクリプトを走らせたら「date の -d オプションなんて知らんがな」というのを見た
macOSユーザーとしてはどう対処していけばいいでしょうか
2024/10/02(水) 22:26:09.61ID:NqOuFu0O0
BSD系とGNUが相容れないんじゃなくてGPL3とAppleが相容れないんだ
気に入らないならhomebrewで好きなものを入れればいいだけ
2024/10/02(水) 22:41:49.23ID:ltdFY1yn0
規格準拠度はmacOSのほうが上というか、ストールマンはPOSIXなんてゴミだ勝手にやるという立場なので…
2024/10/04(金) 14:26:26.41ID:xcwvlzU30
brewでGNU系を少し入れてみたけど.... dateの場合、デフォはgdateという名前になり、dateコマンド
を置き換えるにはaliasかPATHで/opt/homebrew/opt/coreutils/libexec/gnubinを先頭に?
なんだかなー
インストール時に名前が「gなんちゃら」になるのとならないのは、どう違うのかな?
2024/10/04(金) 17:36:35.74ID:J7OX3XqN0
それこそ標準のコマンドを知らずのうちに置き換えて依存してるスクリプトの挙動等をおかしくしないための安全策だろ
もっと安全側に倒すとcurlとかkeg-onlyと言ってsymlinkすらされないものもある
必要なら各自がg抜いてln -sするなりaliasするなりすればよし
2024/10/27(日) 22:17:55.89ID:Dh0YQlFx0
/bin/shのecho(ビルトインのやつ)は-nオプションがないんですね
そういうものですか。地味に驚き
対話的なスクリプトで、改行しないメッセージを出したい時ってどうしてましたっけ
/bin/echoとするか、printfとか?
2024/10/27(日) 22:28:05.74ID:7ds91Div0
echoの非互換含めた諸々の問題を解決するためにできたのがprintfらしいのでprintfでいいのでは
2024/10/27(日) 22:31:27.12ID:lVMzdbpb0
manね(まぁね)
2024/10/31(木) 02:40:39.85ID:rk0uc8Bv0
おれが使ってたのはシェルのビルトインだったw
882名称未設定
垢版 |
2024/11/18(月) 15:37:00.99ID:cHVH3wR20
manの日本語化は無理ですかね?
環境︰macOS Sequoia 15.1 AppleSiliconマシン

古いマシンで古いOSの記事なら見るのですが
AppleSiliconマシンで日本語化したという記事は見かけませんでした
何かしらのアドバイスを頂けますと幸いです
2024/11/18(月) 18:17:29.61ID:KtDRBQoR0
コマンドによってはFreeBSDかLinuxから日本語ページをパクってくるにしても、全般的には無理だろー
誰も用意してねー気がする
884名称未設定
垢版 |
2024/11/18(月) 19:03:38.00ID:cHVH3wR20
やはり無理なので誰も試してないんですね。
スッキリしました。
2024/11/18(月) 22:48:09.67ID:z0x06XOd0
可能不可能でいえば/usr/share/man/ja/に日本語訳ぶちこめば日本語になるでしょ
誰もやらないというだけで、あなたがやってもいいのよ
886名称未設定
垢版 |
2024/11/19(火) 14:11:30.94ID:kNdgYdC50
WSL2 ubuntuで簡単に日本語化できるしbarrierでmacからも操作できるのでこれでいいです
2024/11/19(火) 18:32:56.50ID:9FPfAkLd0
何言ってんのか全然わからん
888名称未設定
垢版 |
2024/11/22(金) 00:26:06.72ID:wAitSfE80
10年以上前に配布してた人はいた(配布先のリンクはもうない)

OSX 10.6のmanコマンドを日本語化
https://qiita.com/suzuken/items/e9bbe1eb7de6a0cb690a
2024/11/22(金) 01:28:30.99ID:E1FgVR/P0
Linux(GNU)との区別は大事だよね
この前うっかりリナックサーの書いたスクリプトを実行したら
sedが変なバックアップファイルを作った
2024/11/22(金) 16:01:41.66ID:5+rSkJSu0
sedの-iオプションは毎回迷うし、POSIX的には未定義なんでどっちが正しいとかも無いから困るな
891名称未設定
垢版 |
2024/11/24(日) 08:32:06.74ID:i3XzJdYj0
psもいつのまにか-efになったなあと思ってman見たらTigerまではbsdだったのね
2024/11/26(火) 06:39:23.40ID:WMPJB+rp0
>>891
今もBSDではある
が、Single UNIX Specification を取得するためには必要な改変をしただけじゃね
POSIX(Single UNIX Specificationの規定もPOSIXベースだったはず)は最低限度の規定しかしてないんだから、BSDはPOSIX準拠をうたってはいない(?)が元のBSDが変えろとも言えるが、影響を考えたら変えないという選択肢が当然BSDにあっても不思議でもないしな
2024/11/26(火) 07:22:25.05ID:OMJJC+hC0
macOS の Apple Open Source が Appleのサイトから消えて、ちょっと探し回った。GitHubに移ったんだろなとは思って探してもなかなか掴めなかったw

https://raw.githubusercontent.com/apple-oss-distributions/adv_cmds/cdf02e0cae3e27f8dae7acab14d87daa962eda1f/ps/ps.c

* Copyright (c) 2004 - Garance Alistair Drosehn <[email protected]>.
* All rights reserved.
*
* Significant modifications made to bring `ps' options somewhat closer
* to the standard for `ps' as described in SingleUnixSpec-v3.

やっぱwだったね

多分Appleがかなり改変をしまくってると思う(このps.cは追ってないが、他のでそうだった)が、元のBSDのが古っw 元のBSDの進化具合とかは見てなく、このソース表記で判断しただけだが
2024/11/26(火) 14:05:15.29ID:gM+E+gt40
>>893
>多分Appleがかなり改変をしまくってると思う

は?

https://github.com/freebsd/freebsd-src/commit/a4c8a745a85b18d74de1d63ac7aa7508cb86cff9
2024/11/26(火) 16:00:58.12ID:6diwR5VH0
SUSv3に言及してるが、SUSv3に準拠はしてない修正だな
2024/11/26(火) 16:02:25.54ID:gM+E+gt40
というわけでそのコメント自体はFreeBSDで、somewhat closerと書いてあるように
そこまでSUSに寄ってない (significant modificationsをしたという割にはw)
ちなみにこのときにFreeBSDのpsに-Aオプションが追加されたが、FreeBSDのmanには
-Aは記載がなく、「隠しオプション」状態のようだw

>>893のDarwinのソースには if (u03) {} みたいなのが追加されてて、これがSUSv3/
UNIX 2003を意識した変更だと思われ、そしてそれはFreeBSDにはない

というわけで
>多分Appleがかなり改変をしまくってる
を一応検証してみました
2024/11/26(火) 16:04:38.43ID:KPrcD6980
言い訳草
2024/11/26(火) 16:32:51.38ID:gM+E+gt40
>>言い訳草
何も言い訳してない。間違いを正したのと興味で調べただけ
一番最後の方しか読めずにレスするタイプ?
2024/11/26(火) 16:46:12.00ID:gM+E+gt40
しかし、githubベースになって、変更の履歴が見やすくなったのはちょっとだけいいかな
上で書いたif (u03)という変更も実際Tigerの後、Leopardで入ったことがわかる
そしてFreeBSDのコードのベースが、ずっと変わっていないというのもわかるw
Darwinレイヤーにセキュリティのパッチが必要なこともあると思うのだが、こんな古いソース
のままメンテしてるのだろうか

あと、コミットのメッセージとタイムスタンプからするに、今までのtarballを一つずつ
インポートしただけのようで、コミット=その作業で残念ではある
本来のコード変更の時刻も、中の人のリアルなコミットメッセージも見れたりはしないw
2024/11/26(火) 17:11:39.59ID:zLHrQGAj0
>間違いを正した
だって
未だそんな姿勢だから言い訳しかしないわなって感じ
2024/11/26(火) 17:15:10.34ID:zLHrQGAj0
因みに、Darwinレイヤー ではない扱いぽいよ、Appleでは
Appleのサイトにあった頃から、macOS/iOSのオープンソース部分
Darwinプロジェクトには含まれてない、Darwinはマジ根幹部分
2024/11/26(火) 17:26:55.49ID:ZTbsYUrO0
あと、Darwinプロジェクトは紆余曲折があって、今はXNUが正式かな
まあ、元からDarwin,XNU共に正式名。使い分けがわからんかったがw uname でも Darwin だしどっちでもええんやだけどな
Darwinプロジェクトと書いて、プロジェクト/リポジトリ的には今はXNUが表立ってってのようてことで
2024/11/26(火) 18:00:33.10ID:aJcvrVKd0
横からだけど
ハイブリッドなんだから名称にこだわる必要ないと思う
904名称未設定
垢版 |
2024/11/26(火) 22:07:14.14ID:3HLv82U50
>>882
man日本語化する必要あるの?ChatGPTに聞くのでいいのじゃ?
2024/11/27(水) 13:59:19.17ID:cHojDlIe0
>>902
そうなんだ。Darwrin=UNIX部分、XNU=カーネルだったと思ったが

>>903
とりあえずシステムの分類名はいるよね。GNUのconfigureとか、バイナリツールとか
>>902にあるようにunameがDarwinと返すので、少なくとも対外的にはDarwinということに
2025/02/17(月) 03:47:15.80ID:UQ/wAHj10
sshのときにリモートでscreenを走らせてます
これでsshが勝手に切れてもセッションは残って回復できるのがいいのだが、
再接続時、画面の更新やスクロールがおかしくなる場合が多々
ちなみにローカル: ターミナル.appからssh リモート: なんかのLinuxでscreen

上記はターミナルのリセットをすれば一応直るのだが、以前にやったことを確認する
ために、できれば画面とかスクロールとかをクリアしたくない
あとscreenを再接続 (screen -r) したときデフォで画面をクリアする、これもいらない
というわけで、上記の状況で
- 画面の更新やスクロールを壊さないようにする
or
- 画面やスクロールをクリアしないようにscreenのセッションを再開する
方法はないかなと、どなたかご存じないでしょうか
2025/02/17(月) 16:34:10.46ID:rGinMIot0
.screenrcで termcapinfo xterm* ti@:te@ したら
2025/02/19(水) 13:48:20.69ID:bx65g5m/0
>>907
なるほどいい感じです、ありがとうございます
2025/04/30(水) 03:31:00.62ID:YhnBmV1E0
Finderから複数のアイテムをTerminalにドロップした場合、ファイル名にスペースなどが入っていたらエスケープして一つの文字列となるようにしてくれるんだが、
item\ 1 item\ 2
for などで文字列リテラルの場合はエスケープを認識してくれのだが、
for item in item\ 1 item\ 2; do echo "$item"; done
item 1
item 2
変数に入れるとエスケープ無効になるのが変な仕様
items='item\ 1 item\ 2'
#itemsは実際にはreadなどで取得
for item in $items; do echo "$item"; done
item\
1
item\
2
正規の仕様のようだが(エスケープではなく$が入ってる文字列の場合とかとか考えるとまあそうか)。文字列リテラルを用いるのと同じようにevalするしかないのか
items='item\ 1 item\ 2'
eval 'for item in '$items'; do echo "$item"; done'
item 1
item 2
2025/04/30(水) 04:42:17.67ID:8ciRTQOP0
一筆書きとはいかんね。$変数でposixパスは結構やっかい
awkも一捻り入れないと出力が空白にされる
2025/04/30(水) 19:45:28.57ID:YhnBmV1E0
だよなぁ
一つだと別に何も問題ないのに、コマンド引数として直接なら問題ない(=それしか考えてないか今ので目一杯か)のになぁ
ドロップした複数のを一つ一つ処理しようとして(使いたいコマンドが一つのファイルした対象にできない、とか、複数のフォルダを一つ一つ処理してそれ毎の統計を一つの処理後毎にとか)、必要毎に最後のを書くのがなんか嫌、普通のは別に嫌でないんだがw

で、とりあえず次のようなの書いた
2025/04/30(水) 19:50:20.98ID:YhnBmV1E0
dropsrun() {
local line
local i
while printf '\n>>> %s >>>\n' "$1"; read -r line
do
while read i
do
$2 "$i"
done < <(eval 'for i in '$line'; do echo "$i"; done')
done
}
2025/04/30(水) 20:01:21.48ID:YhnBmV1E0
第一引数がメッセージ、第二引数がやりたいコマンド

dropsrun 'Drop Here' 'ls -l'
ってすると、ドロップしたのを一つずつ ls -l する(意味ないがw)

実際には、
onebyonels() {
onebyonels_internal() {
echo "## $1"
ls -l "$1"
}

dropsrun 'Drop Here' onebyonels_internal
}
ていう使い方

(こういうのは rcファイルで関数としてのシェルコマンドとして使っていて、internal関数が事後に残るのが気持ち悪いので unset -f して消そう。そしたらtrap INTも必要、trap INTが既に実装したら〜とはまり>>912はなんかすごいことになったw楽しかったけど)
2025/05/01(木) 06:41:52.38ID:8Q7FmwJv0
そういうのをやりたくないからbashもzshも配列がある
posix準拠にこだわるなら仕方ないが…
2025/05/01(木) 15:16:28.98ID:7E8OTj8O0
言うほど変わらんやろ
916名称未設定
垢版 |
2025/06/03(火) 15:36:29.10ID:dWN/aTRf0
macos 15.5 Apple silicon
date (GNU coreutils) 9.7

.zshrc
alias date='date "+%Y年%m月%d日 %A %H時%M分%S秒"'

エラー-----------------------------------------------
date: extra operand ‘+%Y-%m-%d’
Try 'date --help' for more information.
---------------------------------------------------------

2025年06月03日 火曜日 15時15分48秒 (# 表示はされます)

どうしても、エラーの原因がつかめません
よろしくお願いします

コマンドをターミナルに直打ちするとエラーはでませんで正常表示されます
2025/06/03(火) 17:49:36.50ID:IQBsGyDR0
そもそもエイリアスの定義とエラーメッセージの引数が全く違うし
dateを実行したときに実際に何が動いてるか調べたら?

他の箇所でdateに別のエイリアスを割り当てている、dateという名のシェル関数が定義されてる等
2025/06/03(火) 18:23:02.24ID:wuQ/ftBG0
>>917
>そもそもエイリアスの定義とエラーメッセージの引数が全く違うし

エンコーディングの問題という可能性はあるかな
今日びデフォでUTF-8になってそうではあるが
919名称未設定
垢版 |
2025/06/04(水) 03:44:32.84ID:8iOFD4kd0
which dateするとなんて出るか気になった

あともし
alias Date='date "+%Y年%m月%d日 %A %H時%M分%S秒"'
だと問題ないなら
alias date='/bin/date "+%Y年%m月%d日 %A %H時%M分%S秒"'
みたいにフルパスにしてみるとか
920名称未設定
垢版 |
2025/06/04(水) 11:17:02.67ID:1yrRIOSO0
916です

which date → /opt/homebrew/opt/coreutils/libexec/gnubin/date

表示OK → alias Date="date '+%Y年%m月%d日%A%H時%M分%S秒'"
表示OK → alias Date="/bin/date '+%Y年%m月%d日%A%H時%M分%S秒'"
結論
aliasの デート を Date の ディーを D大文字にするとOKということでした。
(d小文字dateはエラーを吐く)
皆さんお知恵のほど、ありがとうございました。
2025/06/04(水) 11:55:24.65ID:PUd7XCMY0
再帰になるってことかな
2025/06/04(水) 12:03:10.01ID:Y3hKhxrh0
ただ単にzhsだから小文字大文字の区別が働いて変数かクラスか分かれただけでは?
case補完入れたら解決したやつも動かなくなりそう
923名称未設定
垢版 |
2025/06/09(月) 20:57:24.92ID:C+j95t7C0
どなたか
popでmailを読み出しているのですが
1年あるいは3年以上前のメールを削除することが
mail.appでは出来ない(1ヶ月以前は可能)のを
なんとか実行出来ないでしょうか
もう12年分メールが溜まっていて
古すぎるメールを削除したいのです
2025/06/10(火) 01:21:53.93ID:tVXaWJnv0
スレ違いかと思ったが、コマンドでというかtelnet(今はcurlか)なんとかか
POPで古いメールって...そもそもPOPの使い方が間違ってる。12年分??本当にPOPサーバーにあるの??
POP telnet でググればなんかいっぱいあるな
とりあえず
https://www.itbook.info/network/pop2.html
で必要なのが簡潔に書かれていそう
2025/06/10(火) 01:51:40.28ID:tVXaWJnv0
>telnet(今はcurlか)
は、curlをtelnetとして使うのだったが、curlがpopと会話できるのね(popに対応してんのねぇ)
https://uchy.me/blog/20240706005/
スクリプトで簡潔に書けるな
2025/06/10(火) 02:57:26.38ID:wT4CKdMZ0
認証はOAuthとかもなかったっけ。大概はPOP3Sなのかな
まサーバ次第ということで。基本curlでいけそうだが
2025/06/10(火) 11:56:12.32ID:tVXaWJnv0
SSL/TLSに対応してないメールサーバはなんか色々あったな
POPでは他に先にsmtpしとけとか
928名称未設定
垢版 |
2025/06/11(水) 05:35:54.09ID:8QXqZ2F60
>>924
ありがとうございます
すっかり忘れてしまってましたが
むかしtelnetでPOPにアクセスしてどうにかしたなと思い出しました
2026/05/03(日) 17:43:51.26ID:KOasgWz80
最近のmacOSってnroffとか無いみたいですね。manはあるのでroff系のコマンドも
どこかに入っていたりします?
レスを投稿する

レス数が900を超えています。1000を超えると表示できなくなるよ。

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