1 名前:名無しさん@お腹いっぱい。 [2012/05/24(木) 16:34:43.03 .net] zshについて語るスレ www.zsh.org/ zsh.sourceforge.net/ ・過去ログ zsh その6 toro.2ch.net/test/read.cgi/unix/1229010860/ zsh その5 pc11.2ch.net/test/read.cgi/unix/1212677877/ zsh その4 pc11.2ch.net/test/read.cgi/unix/1107342206/ zsh その3 pc5.2ch.net/test/read.cgi/unix/1080002786/ zsh入門 パート2 pc3.2ch.net/test/read.cgi/unix/1036324177/ zsh入門 pc.2ch.net/test/read.cgi/unix/990283346/
547 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/29(水) 13:19:33.55 .net] そうなのか。実は zsh スクリプトを積極的に書いていっていいものかと悩んでいるんだ。 他人に使ってもらうためのスクリプトは bash で書いていたが、普段使いのシェルが zsh なので なるべくzsh を使いたい。しかし「このスクリプトを使うためにまず zsh 自体をインストールして下さい」 と言うのは避けたい。導入のハードルを上げたくない。
548 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/29(水) 19:14:19.25 .net] 対話的に使うシェルとスクリプトで使うシェルは別でもいいんじゃないの
549 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/29(水) 22:33:23.57 .net] 日常の作業を自動化したくてスクリプトを書くことがよくあるんです。 あと zsh の rcquotes とか zparseopts とかが便利すぎるので…
550 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/29(水) 23:32:01.46 .net] 自分で答え出してるんじゃね 自分しか使わないならzshでいい 他人に使ってほしいならせめてbash
551 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/30(木) 00:15:19.56 .net] >>550 はい。つまり気になっているのはデフォルトで bash が入っているが、 しかし zsh は入ってない環境が実際あるのか。ってことなんです。
552 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/30(木) 07:17:05.79 .net] あるよ CentOS7でもそうだろ
553 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/30(木) 11:46:06.84 .net] 入ってるか入ってないかは半々ぐらいだね
554 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/30(木) 12:49:34.30 .net] なるほど、そんなレベルなんですか…
555 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/30(木) 17:31:18.55 .net] 「入れれない」ってんならともかく、「入ってない」だけなら入れれば済むワケで
556 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/30(木) 18:41:39.13 .net] 最近のOSXにはプリインストールだから使って良いんちゃう
557 名前:名無しさん@お腹いっぱい。 [2018/08/30(木) 21:25:34.92 .net] サーバ用途だとzshは明示的に入れないと入らないでしょ。稼働中のサーバでは後から入れるにしても難色を示される事も多いですし、上でどなたか書かれてたように、自分に決定権のある環境以外でも使うのなら、zshでスクリプトを書くのは避けるべき。 最近はデフォルトのshellがbashになってたりするけど、昔はbashですら入っていない環境も多くて、/bin/sh で書くように教育されたよ。 年寄り臭くてスマンね
558 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/31(金) 01:32:04.70 .net] >>547 俺も昔おんなじことで悩んでたけど、 >「このスクリプトを使うためにまず zsh 自体をインストールして下さい」 これが通らないような相手のことを考えてスクリプト書いてやるのが馬鹿らしくなって、 以来悩むのはやめたわ。それ自体が仕事だとそうもいかんのだろうけど。
559 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/31(金) 14:18:23.15 .net] >>551 パッケージでなら用意されてない環境も今では珍しいと思うけど、 最初からインストールされてるかどうかで言えば、入ってない環境なんて 山ほどあるかと。 他の人も書いてるけど、デスクトップ用途ならともかく、サーバ用途なら sh、csh、bash、tcshぐらいまでしか入ってないとかは普通にあり得る。
560 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/31(金) 17:27:51.20 .net] csh系は論外とすると、結局無難なのはshかbashだろうか
561 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/31(金) 17:45:30.47 .net] bashがデフォで入ってない環境もあるんで、 無理のない範囲でshにしとくといいよ。
562 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/09/01(土) 04:27:44.51 .net] > 年寄り臭くて いいえ、助言助かりますよ。かつてのbashの位置にようやく追いついたということですね。 先輩方どうもありがとう。 サーバーで使うなら、zsh は諦めるけど デスクトップでは使ってもいいなと思えてきた。
563 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/09/01(土) 04:29:57.61 .net] そうすると気になるのは、fish や Go との差はどうなのかってこと。 必要ならインストールさせればいい、ってスタンス なら、当然その辺がライバルになってくるけど…
564 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/09/01(土) 22:08:09.98 .net] まあいいか。スレにみんなにお礼と言ってはナンですが、makefile で zsh を使う方法を考えたので紹介させてください ~ makefile で zsh を使う・Makefile ~ # 設定をまとめた親ディレクトリ. export ZDOTDIR := $(TMPDIR)/make.$(shell echo $$PPID).zsh $(ZDOTDIR): @cd $(@D); mkdir $(@F) $(ZDOTDIR)/.zshenv: | $(ZDOTDIR) @exec 1> $@; echo setopt rcquotes $(ZDOTDIR)/all: $(ZDOTDIR)/.zshenv # マーカーファイル。この行の依存関係に .zshrc などを並べてね. @touch $@ # 依存関係をまとめたいだけなので、中身はからっぽで. -include $(ZDOTDIR)/all # このように include することでレシピの実行などでシェルが使われる前に設定ファイル群を作れる. マーカーファイルはない状態から作るのでエラーメッセージはかならず出る。それを消すための先頭のハイフン. SHELL := /bin/zsh # zsh の設定ファイルは ZDOTDIR 環境変数で渡される. # なおレシピ外の行での $(shell ...) 関数から呼ばれるシェルは、直前のSHELL設定行より下では作られた ZDOTDIR が有効になった zsh が使える。その行より上ではただの /bin/zsh が使われる. hoo: echo 'hoo''bar' ~ makefile で zsh を使う・実行 ~ $ make hoo echo 'hoo''bar' hoo'bar
565 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/09/15(土) 02:17:59.88 .net] zshwiki.orgってまだ落ちてるの? もしかして閉鎖?
566 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/10/28(日) 20:27:16.64 .net] fishでshift+tabを押すと補完候補をインクリメンタルに選択出来るんだけど、これに似た機能はzshないかね
567 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/11/01(木) 13:19:56.37 .net] hoge hoge hoge 〜 hoge と文字列を任意個展開するスマートな方法ないですかね? for文使えとかそういうのはなしでお願いします マニュアルのExpansionの章をくまなく読めばわかるのかもだけど
568 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/11/01(木) 13:28:12.15 .net] echo $(yes hoge | head -10)
569 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/11/01(木) 13:33:18.60 .net] あ、repeatコマンドもなしでお願いします {hoge(n)} みたいに短くスマートにやる方法が知りたい
570 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/11/01(木) 13:36:12.43 .net] forもwhileもrepeatも使ってないからセーフ
571 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/11/01(木) 13:36:59.97 .net] >>568 あ、bashでこんな手があるんですね yesって何に使うのだろうと思ってた ただ、天下のzshですからもっとzshらしい方法があるはず
572 名前:名無しさん@お腹いっぱい。 [2018/11/01(木) 14:33:26.13 .net] zsh本来の力の10%も使いこなしてないけど、せめてExpansion系は使いこなしたいわ >>566 fishよく知らないんだけどインクリメンタル補完って何? もしかしてサジェスト系?
573 名前:名無しさん@お腹いっぱい。 [2018/11/01(木) 23:47:40.16 .net] ぼうやーってわしもちふつうだけど、まーおこめのほうがいいんだけど エラーの原因が分からない? まず確認しよう! 《書き込めない時の早見表》 《掲示板へ戻る》 《スレッド一覧へ戻る》 《スレッドへ戻る》 もしかしてアクセス規制ですか? お使いのプロバイダさんが、原因となった人に対応するまで規制は続きます。 個別の対応・進展については、プロバイダさんへお尋ねください。 その他、5chちゃんねるについては、 初心者の質問 批判要望 運用情報 運用臨時 などへどうぞ。 o.8ch.net/1b5kj.png
574 名前:名無しさん@お腹いっぱい。 [2018/11/01(木) 23:49:13.04 .net] やっぽ(^|0|^)
575 名前:名無しさん@お腹いっぱい。 [2018/11/02(金) 00:43:17.26 .net] あーめんどくさいなー、びんぼうだしさいごだし、ぼうそういこかなあれはあるか
576 名前:名無しさん@お腹いっぱい。 [2018/11/02(金) 00:45:18.15 .net] わしかわいそーきょうじゅうにじょうものんだし、ああじゅよんのむと、ししょーあるksなきのせいかな
577 名前:名無しさん@お腹いっぱい。 [2018/11/02(金) 00:46:56.52 .net] やだおおさかなんか、またもどってこないといけない
578 名前:名無しさん@お腹いっぱい。 [2018/11/02(金) 00:48:19.84 .net] なんでかんじじゃないんだ
579 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/11/02(金) 01:24:08.04 .net] fish使ってみたけどゴミじゃん zshこそ至強
580 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/11/04(日) 19:43:05.08 .net] [ $i -lt 100000 ] と [[ $i -lt 100000 ]] では後者のほうが速い Linux上では2.5倍ぐらい後者が速いが、 WSL上では10倍以上の差をつけて後者が速い 他のシェルでも似たような傾向はあるがこれほどの差はない どうもzshはシステムコール呼びすぎっぽいな
581 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/11/04(日) 19:49:50.35 .net] [ ] が遅いって言うよりも関数呼び出しが遅い気がするな while [[ $i -lt 100000 ]]; do を ↓ foo() { [[ $i -lt 100000 ]] } while foo; do こんな感じに置き換えてみたら、同じように遅くなった [ ] を使っていた場合、最初から関数呼び出し相当だったということかも
582 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/11/04(日) 20:00:30.18 .net] ベンチマークで、ループしてevalとそうでない場合の 速度差を調べようと思ったんだが、まさかループの回数判定で evalと同等の差がでるとはwww evalもzshだけ遅い。他のシェルはeval使っていても ほとんど速度は落ちないというのに
583 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/11/07(水) 00:58:35.37 .net] あれ、[って外部コマンドのtestじゃないの?
584 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/11/07(水) 04:53:13.07 .net] 俺の知る限り、現在使われてるBourne系シェルの 全てで [ はビルトインになっている
585 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/11/09(金) 06:53:11.53 .net] \[
586 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/11/09(金) 09:26:03.48 .net] \[^_
587 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/11/11(日) 11:01:33.88 .net] \[^_^
588 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/11/23(金) 23:01:18.39 .net] setopt forcefloatして(( ))の数値演算すると固定表示で出力される仕様みたい それはいいんだけど、最後の桁に誤差が混じってちょっと困る なにかいい方法ないかな $ echo $(( 1 )) 1. $ echo $(( .1 )) 0.10000000000000001 ←0.1 ってなってほしい
589 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/11/24(土) 12:49:07.27 .net] >>588 printf じゃだめかな? $ printf "%.1f\n" $((.1)) 0.1 $ printf "%.2f\n" $((5.1)) 5.10
590 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/11/24(土) 17:01:24.90 .net] printfで0.999999999999999になったとき どう表示されるのだろうか
591 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/02/27(水) 22:41:58.39 .net] 先輩、手の空いてる時に教えていただけませんか? ssh接続して、サーバー内で [server:~] $ sudo rm -f `ls -1t /home/user/work/*.mp4 | tail -n+3` は、おkなのですが、 [local:~]$ ssh hostname “sudo rm -f `ls -1t /home/user/work/*.mp4 | tail -n+3`” は、 zsh: no matches found: /home/user/work*.mp4 で、うまくいきません。 サーバー はbash しか入ってないです。 これってどうしたらうまくいくがアドバイスいただけませんでしょうか。 rmするのにsudoしてるのは、docker run -v してるディレクトリで コンテナが吐き出すファイルだからです。
592 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/02/28(木) 00:06:45.12 .net] >>591 \*.mp4 みたいにエスケープするとどうなる?
593 名前:591 mailto:sage [2019/02/28(木) 00:20:38.97 .net] レスありがとうです! エスケープ試してみたのですが、 zsh: no matches found: /home/user/work*.mp4 で結果は変わらなかったです。
594 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/02/28(木) 01:58:08.65 .net] クライアント側のzshが先にワイルドカード展開しようとしてエラーになってるのかな ダブルクオートをシングルクオートにするのはどうか lsコマンドを囲んだ元のシングルクオートはエスケープするか$()で置き換えるか
595 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/02/28(木) 04:07:10.31 .net] ls を囲んでるの、シングルクオートじゃなくてバッククオートなんだよ。 だから ssh を呼び出す前にクライアント側のシェルで展開されて、何もマッチしないから空の文字列になってる。 単純にダブルクオートをシングルクオートに変えるだけでいいと思うよ。
596 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/02/28(木) 11:32:06.11 .net] >>594-595 ダブルクオートをシングルにしたらいけました。 天才! ありがとうございます!
597 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/03/06(水) 19:43:09.72 .net] ワイルドカードの質問ですが mkdir ~/hoge touch ~/hoge/fuga ls ~/hoge/fu* 最後の行のfu*がタブ押しても補完してくれません ~が$HOMEだと補完してくれます バグですかね?
598 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/03/06(水) 21:40:41.30 .net] >>597 バグだろうね 自分の環境では補完されるからキーボードかPC捨てて買い換えろ
599 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/03/30(土) 02:31:35.90 .net] (( a = 0 )) と (( a = それ以外の数値 )) の終了ステータス $? が それぞれ1と0なんどけど仕様?(( a = 0.0 )) とかにしても1。 変数に設定された値自体が終了ステータスに影響するっておかしくない? エラーがあると困るシェルスクリプトでは最初に set -e するようにしてるんだが これじゃ (( )) で数値演算したいときに超困る
600 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/03/30(土) 09:43:53.90 .net] >>599 ちょっと調べてみた まずbashでhelp letを見てみると Exit Status: If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise. とあるので((...))は中身が0に評価されたときのみ1を返す じゃあa=0とa=1(これはassignment)がどんな値に評価されるのか?だけど POSIXを見ると$((...))の中身はCのルールに従って評価されると書いてある ((...))もPOSIXには無いけど同じルールに従うはず pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap01.html#tag_17_01_02_01 で、Cだとassignmentはassignされた値を返すので ((a=0))は0、((a=1))は1を返すということになる 一言で言うと(( ... ))の中はCのルールが適用されるからということかな set -eの回避策は((a=0, ..., a>100))とか、: $((a=0))とか、if文の中に押し込むとか色々ある
601 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/03/30(土) 09:45:56.68 .net] 間違えた修正 誤 ((a=0))は0、((a=1))は1を返すということになる 正 ((a=0))は1、((a=1))は0を返すということになる
602 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/03/30(土) 14:08:35.55 .net] >>600 ,601 調べてくれてありがとう。Linux歴15年以上あるのに今頃知りましたよ : $(( 〜 )) のスタイルにするしかないかー。面倒だ ちなみにこんなwhile処理で発覚した。致命的なミスをする前に気づけてよかった set -e (( x = xmin )) while : ; do 〜処理〜 (( x += dx )) (( x > xmax )) && break done 変数は全部浮動小数ね
603 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/04/18(木) 22:53:06.53 .net] gitで M ../a1.txt M ../a2.txt こんな風に親ディレクトリに変更ファイルがあるとき git add <Tab> で候補だしてくれないじゃん。 git add ../<Tab> なら出るんだけど。これ出るようにできないかね?
604 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/04/21(日) 01:52:16.18 .net] >>602 このスレは始めてきたので今更だが 普通は x=$((xmin)) x=$((x+dx)) [ "$x" -gt "$xmax" ] とかやろ?
605 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/04/22(月) 23:59:34.71 .net] せっかくzsh使ってんのに-gtだの-leだのまどろっこしい書き方できるかよ
606 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/04/24(水) 00:30:15.21 .net] だからそのせいでバグってるんだろw
607 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/05/12(日) 09:37:21.73 .net] ~/.zsh_historyファイルを読んで、コマンド実行の傾向を分析するkibanaのdashboardを作りました。 dockerで作らているので、非常に簡単に始められます。 もし良かったら使ってみてください。 https://github.com/codequokka/shell-history-analyzer
608 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/05/20(月) 19:48:20.77 .net] lsのソートについて質問 ファイル名先頭の_が無視されるのか hoge1 _hoge2 hoge3 となるのだけど _hoge2 hoge1 hoge3 とするにはどうしたらいいの?
609 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/05/21(火) 06:05:49.21 .net] env LC_COLLATE=C ls
610 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/05/21(火) 15:54:03.74 .net] >>609 zshの問題じゃなかったんだ 失礼しました ありかとう
611 名前:名無しさん@お腹いっぱい。 [2019/06/04(火) 15:35:52.59 .net] 新しい macOS のデフォルトシェルが zsh になるってよ!
612 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/06/04(火) 15:50:15.05 .net] macOS 10.15 Catalinaではbashに代わりzshがデフォルトシェルに。 https://applech2.com/archives/20190604-zsh-as-the-default-shell-on-macos-10-15-catalina.html
613 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/06/04(火) 19:47:25.06 .net] bashですら重いのに、更に重いzshにするのか・・・ 誰が喜ぶんだ?
614 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/06/04(火) 20:29:47.36 .net] Macのシェルなんて素人さんしか使わねぇよ WSLと同じ 品質なんかどうでも良い
615 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/06/04(火) 21:16:25.72 .net] GNUは嫌だ でも今更cshも嫌だ zsh
616 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/06/05(水) 02:28:28.14 .net] zshは互換性が低いんだよな
617 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/06/05(水) 10:39:23.94 .net] zshに関する日本語の記事が増えるなら嬉しい
618 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/06/05(水) 13:07:51.89 .net] 日本語のドキュメントなんて飽和してね?
619 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/06/09(日) 20:53:15.41 .net] タブ補完で例えば、 cp oo/oo kk/kk の oo/から保管して ppppを入力する場合、ooとppppの差分の2文字が上書きされるのですが、回避する方法はありますか? 上の場合だと cp oo/ppppk/kk のような結果になります。
620 名前:名無しさん@お腹いっぱい。 [2019/07/25(木) 03:09:55.25 .net] カレントシェルで文法チェックのためにdryrunしたい。 zsh -n $BUFFER で変数 BUFFER をチェックできるけど、 新しくシェルを立ち上げるから setopt がズレてるおそれがあり、 いまのシェルで $BUFFER が実行できることを保証できない。
621 名前:620 mailto:sage [2019/07/26(金) 01:38:11.16 .net] たとえば ignore_close_braces がオンになっていると args(){ echo $# } はパースエラーになる。
622 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/07/31(水) 19:38:44.01 .net] そもそも dryrunである以上、$BUFFER が実行できることなんて保証できない setoptを含め、実行時にしかわからない情報に依存するものは 実行しないdryrunでわかるわけがない
623 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/01(木) 12:54:23.45 .net] >>622 なら zsh -n は何の役にたつの? 文法をチェックする… ただしパーザの挙動を変えるsetoptが起こる場合 結果は正しくない。起こるか否かも動的にしか判らないのだから、 静的に保証できるものは何もないのでは。
624 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/01(木) 13:21:22.25 .net] 622はおそらく間違っている。 現在のオプションを参照するカレントシェルで動く文法チェッカがあれば、 $BUFFERの実行を伴わない文法チェックはできると思う。 setopt によるパーザの変更はひとつのコマンド行が終わった後に効くっぽいからだ。 二行のファイル setopt ignore_close_braces args(){ echo $# } をsourceすると失敗するが、一行に結合してインタラクティブシェルから呼ぶと成功する。
625 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/01(木) 14:05:18.91 .net] >>623 > なら zsh -n は何の役にたつの? 構文チェックであり、実行時チェックではない。
626 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/01(木) 14:14:42.30 .net] args(){ echo $# } は ignore_close_braces がオンであろうがオフであろうが そのオプションとは無関係に正しい文法 だからzsh -nでチェックすると正しい文法として扱われる args(){ echo $# } という関数定義命令を実行すると、 パースエラーという "実行時エラー" が出る 「パースエラーなんだから、実行時エラーじゃないやい!」なんて理屈は通じない。 evalで変なコードを実行したらパースエラーになるだろ 実行時パースエラーというのものが存在する dry-runである以上、実行時パースエラーを見つけることは不可能 zsh -nは間違ってる文法を「間違ってる文法」だと保証してくれるが 「正しい文法」だとは保証していない
627 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/01(木) 14:17:22.64 .net] evalがある言語では ソースコードのパースも(一部は)実行時に行われる dry-run=実行しない以上、実行時にしかわからないエラーを見つけられるわけがない。
628 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/01(木) 14:19:19.08 .net] ignore_close_braces オンで文法チェックしたいなら、 こうすればいいだけ zsh -o ignore_close_braces -n
629 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/01(木) 15:13:15.12 .net] >>626 構文チェックだけして実行時パースはどうでもいいって状況があるのか? ともあれ zsh -n の働きはわかった。構文チェック -> 実行時パース の順で通していくわけだね。 今回の俺の目標は$BUFFERの実行時パースって位置づけか。 >>628 サンクス、現在のコマンドラインの$BUFFERとその時点のオプションを渡せば目標は達成できるぜ。 実行なしでの文法チェックができた。 もちろん$BUFFER内のevalの引数まではチェックしないけど、そこまでは元々期待してない。
630 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/02(金) 10:43:58.09 .net] いやその理解はおかしい。構文チェックが二段階あるわけではない。 インタラクティブシェルでは実行時パースの単位はコマンド行の実行毎になるというだけ。 そのため$BUFFERのチェックに限っていえば、パースは一回なので、 途中でのパーザ変更は変数中に効果を発揮しない。故にドライランで構文チェックができる。 > args(){ echo $# } > は ignore_close_braces がオンであろうがオフであろうが > そのオプションとは無関係に正しい文法 ノー。zsh -o ignore_close_braces -n ... で判定するとエラーになる。zsh -n の機能は単に構文チェックするというだけ。 その例のようにパーサの変更がない区間での構文チェックで役にたつ。 アドバイスにおいて、レスをよく読まずに一般論でドヤ顔したり、相手の思考を妄想して叩くべきではない。
631 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/02(金) 11:33:35.09 .net] あとはこんなときとかに使えるね。 make(){ zparseopts -D -M -E -A opts -- n -just-print=n -dry-run=n -recon=n if [[ $opts[(i)-n] ]];then command make -f =(echo '.SHELLFLAGS := -n -c') "$@" else command make "$@" fi } これは make の dryrun をシェルの dryrun に置き換える。スクリプトを表示するだけだったのが、文法もチェックするようになるよ。 $ make -f =(echo 'SHELL = zsh';echo 'hoo:; echo hoo)') -n echo hoo) zsh:1: parse error near `)'
632 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/02(金) 13:35:05.17 .net] >>630 > いやその理解はおかしい。構文チェックが二段階あるわけではない。 二段階あるんじゃないよ。 -nによる構文チェックは実行せずに静的な構文チェックを行う。 実行しないから実行したら文法エラーになるようなものを見逃す。 通常の実行時は静的な構文チェックは行わずに、実行しながら構文チェックを行う 二段階あるんじゃなくて、二種類あるんだよ。
633 名前:630 mailto:sage [2019/08/02(金) 13:54:57.79 .net] >>632 同意。俺の理解と等しい。
634 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/02(金) 14:01:37.54 .net] んで、話は最初に戻る そもそも dryrunである以上、$BUFFER が実行できることなんて保証できない setoptを含め、実行時にしかわからない情報に依存するものは 実行しないdryrunでわかるわけがない
635 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/02(金) 14:32:46.44 .net] ノー。$BUFFER 実行時の構文チェックは一回だから
636 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/02(金) 15:29:13.61 .net] >>635 何いってんの? $BUFFERに入ってるのはただのファイル名なんだけど? zsh -n $BUFFER 構文チェックに通ったからと言って、実行したときに構文エラーが出ないとは限らない なぜなら、zsh -nは実行したときの構文チェックとは別物だから。
637 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/02(金) 16:04:43.33 .net] >>636 いや、man zshzle に書いてあるが zsh の変数 $BUFFER は エディットバッファの中身を格納している。この値は zle のウィジェットから取得できるんだ。 コマンドラインに例えば echo hoo と入力して実行すると BUFFER='echo hoo' になる。 ウィジェットは自作もできて、好きなキーに bindkey 命令で紐づけて呼べる。 読み返して気付いたんだが、620 は書き間違いで zsh -n -c $BUFFER が正しい。 zsh スレだから当然BUFFERくらい知ってるよなと思っていて、会話が繋がっていったので疑いもしなかったんだが これは完全に俺が悪いです。ごめんなさい。
638 名前:名無しさん@お腹いっぱい。 [2019/08/04(日) 07:19:57.29 .net] source ~/.zshrc を打とうとして source ~/.zsh_history を実行してしまった悲劇が話題になってた これどう対策する?
639 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/04(日) 07:28:41.73 .net] >>638 具体的に何が問題なの?
640 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/04(日) 08:14:57.90 .net] https://qiita.com/stilo/items/90f6c6e308c85a4a9460 ~/.zshrc を実行するつもりがタブ補完などをスリップしてしまい .zsh_history を実行していまう。 するとヒストリファイル($HISTFILE == .zsh_history)に書かれた過去に実行したコマンドが、順番に source コマンドによって読み込まれて実行される。 記事で紹介されている事故では途中で止められる機会があったから良いものの、運が悪ければ不可逆的・破壊的コマンドが走り重要な情報を含んでるかもしれない現環境がズタズタになる。
641 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/04(日) 09:04:01.96 .net] ヒストリ先頭に予め終了命令を入れておくという技をtwitterでみた。 手作業だと忘れそうなので、.zshrc にこういうのを書いておけばいいかな。 < $HISTFILE | { mv $HISTFILE{,.bak}; sed '1{/return 1/!i\ echo '"'"'Cannot source `'$HISTFILE'`, Abort.'"'"' >&2;return 1 ;}' > $HISTFILE ;} && rm $HISTFILE.bak
642 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/04(日) 09:05:51.31 .net] >>640 リンク先読んでないけど、それコマンド確認しないでEnter押しちゃ何だってトラブルの元だよね 補完offにしとくか、HISTSIZEを2-3ぐらいにしとけば 設定ファイル編集した後に読み込むならsource !$<tab>でもいいんだし
643 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/04(日) 09:15:19.48 .net] 誰しも失敗はあるし、フェイルセーフはやっぱほしいよ。 >>642 > 補完offにしとくか、HISTSIZEを2-3ぐらいにしとけば それだと普段の作業がちょっと不便では。 >>641 は毎回mv,sedとかが走るのはパフォーマンス的にどうなんだ HISTFILE=~/my_history みたいに換えとくのが単純でいいか。
644 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/04(日) 09:25:34.17 .net] >>642 ヒストリ展開は便利だけど、ファイル編集した後なんか適当なコマンドを思いつきで打ってしまうとやりにくい。 >>643 いやこのためだけに、$HISTFILEをファンシーな名前にするのはなんだか環境が汚れた感じがする。
645 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/04(日) 11:29:09.41 .net] これで行けるわ zstyle ':completion:*' ignored-patterns '.zsh_history' .zshrc あたりに追加すればいい
646 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/04(日) 12:10:26.35 .net] 書き直した。ヒストリのバックアップは別でやるべきだわ function ensure-file-head(){ [[ $(< $1 | read -re) == $2 ]] && return < =(print -r -- $2;< $1) > $1 } # ensure preventing `source .zsh_history`. ensure-file-head $HISTFILE 'echo '"'"'Cannot source `'$HISTFILE'`, Abort.'"'"' >&2;return 1' ファイル直接編集を避けるためにヒストリ関連の組み込み命令 fc -R, -W とかを使ってやる方法も考えてみたが、オプションの具合によってはファイルに追記しかしないし、デフォルトでは詳細なタイムスタンプがつかなかったりするので、 「この指定はsetopt 〜 の後で行う必要がある」のような条件がついて美味しくない。 >>645 補完よく知らないのだが、そっちに手を入れるほうが良さそうだね。 試してみたところその指定では tail .zsh_history のようなものも弾かれてしまわない? source だけに限定するのは難しいだろうか
647 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/04(日) 12:18:01.65 .net] >>646 historyとどう違うの
648 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/04(日) 12:52:07.02 .net] >>647 fc のこと? history == fc -l で、リストアップに限定したコマンド。
649 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/04(日) 13:01:33.64 .net] 問題の対策は他にもEnterキーのアクションである accept-line ウィジェットを置き換えるとか、 コマンドライン実行前に呼ばれる preexecフックとかで止める方法がある。後者は記事のブックマークコメントの先で紹介されてた。 でも言われてた通り機構をあらたに作る必要があって煩雑になるし、その辺は元々弄りたい需要が多すぎるのでただでさえゴチャついてるところに手を入れがたい。 インタラクティブシェルだけ source を関数で置き換える方針はどうだろう。 .zsh_historyが引数のときだけ実行を警告するように。これも軽い修正になってよさそうじゃないかな
650 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/04(日) 13:50:19.73 .net] source ~/.zshrcはエイリアスに入れてるわ これで誤爆の心配もないね!
651 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/04(日) 13:56:32.83 .net] >>650 エイリアスは忘れちゃわない?
652 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/04(日) 14:02:16.19 .net] >>648 いや history じゃなくてわざわざ tail .zsh_history を使うのってどういう時なの? 何にせよ .zsh_history を開きたいときは command $HISTFILE<tab> でもいいと思うけど
653 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/04(日) 14:09:43.14 .net] >>651 確かに忘れるけど、セーフティ的な意味なら充分役立ってくれるかなと思って……
654 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/04(日) 14:15:12.35 .net] >>652 ヒストリ関連のオプションをいじってたとき、内部ヒストリがファイルに保存されているかを確認するために tail .zsh_history と history を見比べてた。 テンポラリのヒストリファイルを複数作って実験していたので、tail $HISTFILE はその用途では使いにくい。 このような需要はあまりないとは思うけど、補完を絞る方法がもしあるならモアベターだと思うんだ。 >>651 ひょっとしてサフィックスエイリアスかな? それはよさそう $ alias -s zshrc=source $ ~/.zshrc (source ~/.zshrc が行われる…)
655 名前:651 mailto:sage [2019/08/04(日) 14:17:15.29 .net] >>653 なるほど
656 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/04(日) 18:43:47.12 .net] HISTFILE=~/.zsh/history_zsh って感じで場所と名前変えてる
657 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/04(日) 20:08:58.07 .net] ZSHを使わない
658 名前:名無しさん@お腹いっぱい。 [2019/08/18(日) 23:52:53.56 .net] zshクソ。誰もが使いそうな変数名を特殊扱いすんな statusとかpathとかsecondsとか
659 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/08/19(月) 00:28:59.18 .net] parametersとoptionsもあった
660 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/10/19(土) 20:04:44.61 .net] 遅レスですまないけど、.zhistoryって行頭が:になってるからsourceしてもスルーするんじゃないの? :って何もしないって機能だよね
661 名前: mailto:sage [2019/10/20(日) 18:48:22 .net] EXTENDED_HISTORY <C> Save each command's beginning timestamp (in seconds since the epoch) and the duration (in seconds) to the history file. The for‐ mat of this prefixed data is: `: <beginning time>:<elapsed seconds>;<command>'. : ... : ... ; rm -rf / いかんでしょw
662 名前:名無しさん@お腹いっぱい。 [2019/10/22(火) 13:36:40.23 .net] >>660 > :って何もしないって機能だよね なにも "出力しない" 機能であって何もしない機能ではない。 : $(touch /tmp/ttttt) は実際にファイルを作成する。コメントの代わりには使えない。 そもそも>>661 が言ってる通り、;で区切られてるから動く
663 名前:名無しさん@お腹いっぱい。 [2019/10/22(火) 13:37:43.51 .net] まあ、: コマンド自体が何もしないってのはそのとおりだけど 一行全体で見ると、引数部分を実行するという話
664 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/10/23(水) 06:15:25.06 .net] :はなにもしないし引数をすべて無視するけどシェルが:の引数と解釈しなかった部分が実行される よって;とか&&とか$()とか<()とかいろいろ実行される
665 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/10/26(土) 21:27:09.03 .net] : を使うシーンって何? 意味は知ってたが使ったことない
666 名前:名無しさん@お腹いっぱい。 [2019/10/26(土) 22:13:29.87 .net] >>665 変数の代入と停止の無効化
667 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/10/26(土) 22:58:50.57 .net] >>665 trueの代わり
668 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/10/26(土) 23:55:09.51 .net] >>665 ファイルサイズを0にする
669 名前:665 mailto:sage [2019/10/27(日) 00:54:52.87 .net] そういや普通にwhile : ;do〜みたいに手癖で使ってたわ あと昔書いてたシェルスクリプトでも冒頭でset -eを設定しておきつつ エラーで止まってほしくない箇所で : を使ってた てかzsh関係ないですねすんません
670 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/11/10(日) 00:49:14.12 .net] zshが馴染みすぎるとbash、それも素の設定を使わざるを得ない状況になるとストレスがすごいよね 鯖缶の方とかそういうシチュエーション多そうだけどどうやって折り合いつけてるんだろう
671 名前:名無しさん@お腹いっぱい。 [2019/11/10(日) 15:56:08.74 .net] >>670 zshは基本入ってないんで、bashに戻りつつあるw
672 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/11/10(日) 23:38:07.15 .net] 自作のZpluginプラグインのほぼ全てが壊れたまま運用していて、 むしろスッピンより不便なはずだが、何も感じなくなってしまった インタラクティブ環境は、慣れやすいものなのかも
673 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/11/13(水) 00:02:51.13 .net] Macのデフォルトシェル採用って結構影響でかいような 問題なければ追従するUnixやLinuxの鳥も出てくるじゃないかと
674 名前:名無しさん@お腹いっぱい。 [2019/11/13(水) 03:58:48.06 .net] それはないなー bashとの互換性がね。shwordsplit、あれが最悪だね。 理屈はわかるんだけどね。互換性の点から見れば最悪。 うん。互換モードはあるよ。でもデフォルトじゃないんで代替にできない。 そこまでして変える必要性がない。
675 名前:名無しさん@お腹いっぱい。 [2019/11/13(水) 04:02:15.99 .net] そもそもさ、みんな潔癖だからね。POSIX準拠。そっち優先。 debianとかubuntuは bashよりも機能が低いdashとかにしようとしてるぐらい ログインシェルはまあ自由に使っとくれって感じだろうけど デフォルトシェルはPOSIX準拠。これ一択なんでzshにはならんよ 遅いしね。
676 名前:名無しさん@お腹いっぱい。 [2019/11/13(水) 04:03:39.70 .net] Macのログインシェルは、はたから見ると、あぁ可哀想 bashのライセンスが受け入れられなかったから 消去法でzshなんだね。ぐらいにしか思ってない。 zshを選びたくて選んだなんて誰も思ってないんだよ。
677 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/11/14(木) 17:48:54.18 .net] zshで何も困らない 強いて言うならQiitaとかのzsh初めて使った人の記事が初心者すぎて目障りなくらいw
678 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/11/16(土) 03:47:19 .net] Macユーザのウザさ、もとい声のデカさを信じようじゃないか
679 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/05/01(金) 03:17:08.65 .net] plugin managerをzinitに変えたら起動が爆速になった オススメ
680 名前:名無しさん@お腹いっぱい。 [2020/05/03(日) 05:08:47.72 .net] 単なる興味なんですがzshの2系より前って手に入らないですかね?
681 名前:名無しさん@お腹いっぱい。 [2020/05/03(日) 05:09:03.16 .net] 2系を含みます
682 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/05/03(日) 08:13:07.84 .net] zshの2系、やっと見つかりました。 https://web.archive.org/web/19990828203220/www.cs.elte.hu/pub/zsh/old/?919318967
683 名前:名無しさん@お腹いっぱい。 [2020/05/05(火) 22:51:09 .net] zshにBASH_ENVに相当する機能はありますか? つまりzshでシェルスクリプトを非対話型で実行した時に 任意の処理を先立って実行したいのです。
684 名前:名無しさん@お腹いっぱい。 [2020/05/06(水) 07:12:37 .net] >>683 ~/.zshenv かな zsh.sourceforge.net/Doc/Release/Files.html スクリプト実行時に限らず対話シェル起動時にも読まれるけど INTERACTIVEオプションの状態をチェックするifで括ればよさそう if [[ ! -o INTERACTIVE ]]; then echo non-interactive fi
685 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/05/06(水) 08:45:36 .net] >>684 ありがとうございます 既存の ~/zshenvは修正できないという制約があるのでINTERACTIVEの チェックは出来ませんが、ZDOTDIRを書き換えればなんとかなりそうなきがします つまりBASH_ENVをセットして起動の代わりに /tmp以下に一時的にファイルを作ってZDOTDIRをセットして実行 初期化処理の中で一時ファイルを削除したりZDOTDIRを元に戻したりとかです
686 名前:名無しさん@お腹いっぱい。 [2020/05/10(日) 02:59:44.09 .net] 10より大きいファイルディスクリプタを使うにはどうすればいいの?
687 名前:名無しさん@お腹いっぱい。 [2020/05/10(日) 03:14:41.32 .net] 事後怪傑しました!
688 名前:名無しさん@お腹いっぱい。 [2020/06/09(火) 19:06:54.37 .net] あー、もうやだ、クソzsh。なんでこんなこともできねーんだよクソ しかも5.5?ぐらいから挙動変わってるし、バグなんかこれ changelogみてもなにもわからねーしー、どうすればちゃんと取得できるんだよ
689 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/06/09(火) 21:59:20.23 .net] クソなレス
690 名前:名無しさん@お腹いっぱい。 [2020/06/09(火) 22:18:51.92 .net] うるせーばーか、こっちはzshがクソで困ってるんだ bashの方がいいな
691 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/06/10(水) 01:10:37.06 .net] 好きなの使えよ
692 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/06/10(水) 06:47:54.01 .net] 何がやりたいのかさっぱりなうんこだな
693 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/06/16(火) 00:13:26.25 .net] zshは機能が多すぎて覚えられない お勧め設定をAI的に徐々に教えてくれたらいいのに 「そのやり方、こんなふうにもできますよ?次回からこうします?」って
694 名前:名無しさん@お腹いっぱい。 [2020/06/28(日) 06:13:09 .net] fishどう?
695 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/06/28(日) 08:33:56.89 .net] 色付きとか好きじゃないので俺はあんまり
696 名前:名無しさん@お腹いっぱい。 [2020/06/28(日) 08:56:18.58 .net] 互換性を切り捨ててるものは結局デフォルトになることはないしね zshも互換性が完璧とは言えないから驚かれたぐらい bashがライセンス上の都合で選択できない以上どうしようもなかったんだろうが
697 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/07/02(木) 16:31:10.99 .net] Gay fish YO!
698 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/07/07(火) 04:27:47.52 .net] 下記はとある本にのってる zsh のプロンプトの設定なんですが、一番右の % はなんなのでしょうか? いらない気がするのですが? 誤植? # プロンプトの右はじに、false なら終了ステータスを表示。 RPS1="%(?..(%?%))"
699 名前:名無しさん@お腹いっぱい。 [2020/07/07(火) 06:07:17 .net] >>698 %( に対応する閉じ括弧だと解釈されるのを防ぐエスケープ
700 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/07/07(火) 15:42:07.86 .net] ksh にすればいいのに()
701 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/07/07(火) 20:58:59.88 .net] Mortal Shell のオープンβテスト開始! zsh から乗り換えよう! https://news.yahoo.co.jp/articles/5742b9e2bf4c61014a5788631b1c98de8a886eb0
702 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/07/07(火) 22:09:19.90 .net] >>700 kshはメンテも終わった終わったシェルだから
703 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/07/08(水) 00:17:05.82 .net] >>702 KornShell 2020 - Impossible Happens! situ.im/posts/kornshell-2020-impossible-happens
704 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/07/08(水) 00:49:54.46 .net] >>703 AT&Tがそれを全て取り消して93u+をベースに最初からやり直し、だがそれも頓挫かな ksh2020はkshの派生の別物扱い。zshもksh(tchs)の派生だから兄弟のようなもんかw
705 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/07/08(水) 00:51:09.23 .net] >>704 zshはコード自体は全く別物だったか。フォークという派生とはちょっと違うか
706 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/07/08(水) 16:15:54.16 .net] command.com 最強!
707 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/07/08(水) 17:28:21.63 .net] 最凶 最凶と呼べるほどにもない全然 使えない おもちゃか
708 名前:名無しさん@お腹いっぱい。 [2020/07/09(木) 15:06:08.46 .net] パッケージ: ksh (2020.0.0+really93u+20120801-6) https://packages.debian.org/bullseye/ksh これはksh2020なのか93uなのか
709 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/07/09(木) 15:12:23.68 .net] Debian offers ksh2020[20] in its testing version.[21]
710 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/10/14(水) 06:23:19.65 .net] ksh2020は完全に放棄されてんな ASTからバグフィックスのためだけにフォークしたおじいちゃんが一番地道に現在活動的
711 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/11/04(水) 19:33:06.67 .net] これなんなの? https://github.com/ksh2020/ksh
712 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/11/05(木) 00:19:08.19 .net] >>711 >>704 AT&Tからフォークしてあくまでもメンテナンスだけを現在熱心にやってるのは https://github.com/ksh93/ksh かな。それの冒頭に>>711 のことも書いてる
713 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/11/05(木) 08:03:32.52 .net] 一体いくつあるんだよw オリジナルはまあいいとして そこからの派生
714 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/11/05(木) 13:49:41.45 .net] オリジナル : 頓挫、終了 オリジナルのちゃんとしたメンテ : 無い、まだ無い 色々やった 2000 : 頓挫 地道に一人で : 地道に継続中 だけだよ。てか、いい加減過疎ってる ksh スレに行けよw zshなんも関係ないぞ
715 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/11/05(木) 13:52:24.25 .net] 色々やった 2020 ね
716 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/12/09(水) 09:17:20.05 .net] https://i.imgur.com/BWhdsXV.jpg
717 名前:名無しさん@お腹いっぱい。 [2020/12/11(金) 13:03:32.87 .net] >>478 oh my zshとかGrmlの話題もまったくなく何話してたんだここ >>479 使ってないわけないんだが 何故かこんなのしかいなかったからこのざまだったんだろうな
718 名前:名無しさん@お腹いっぱい。 mailto:sage [2020/12/11(金) 15:05:10.75 .net] zshで拡張した部分を使えば便利だが、zshしか使えない体になってしまうからなw
719 名前:名無しさん@お腹いっぱい。 [2021/01/03(日) 01:20:30.63 .net] MacでCUIアプリをダブルクリックした際の挙動と、 インタラクティブシェルで起動した際の挙動を変えたいのだけれどフラグとなる 環境変数がなになのかわからん。
720 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/01/03(日) 04:34:42.56 .net] どちらかで変わるわけ無いやろ
721 名前:名無しさん@お腹いっぱい。 [2021/01/03(日) 19:34:32.29 .net] >>720 やっぱりそうですかわかりました。
722 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/01/05(火) 10:19:41.81 .net] bashしか使ったことなかったけど Macがzshなものでドキュメントみてたけど ページ量多すぎだろ
723 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/01/05(火) 10:50:40.81 .net] 機能が豊富ですから 機能が豊富なzsh固有のに慣れてしまうと他が使えない体質になりそうで使わないけどw
724 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/01/10(日) 11:20:57.77 .net] 誰もいない海だ
725 名前:名無しさん@お腹いっぱい。 [2021/01/24(日) 12:55:43.62 .net] ここzshの本スレですか?随分人いないですね。 どこか別にコミュニティあるんですか?
726 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/01/25(月) 16:57:13.71 .net] >>717 今だとzinitがホットかな でもまぁフレームワークなんて流行り廃りがあるのだし、ライトユーザが無理に使う必要もないよね
727 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/01/25(月) 18:29:50.97 .net] oh my zshとかzinitってなんのために使うんだろう? プロンプト決めるだけでしょ?
728 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/01/30(土) 13:28:04.12 .net] 一通り環境作り上げて不満なくなると更新とか動向全くチェックしなくなってしまう せめて数年に一度は見直さないといかんわな この腰の重さは老化のバロメータか
729 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/03/30(火) 01:24:21.91 .net] 人が書いたやつはちゃんと追いかけておかないといつまにか別物になってる可能性があるな
730 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/07/06(火) 23:56:33.91 .net] もう一年も更新ねーじゃん ついにオワコンかzsh
731 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/07/07(水) 06:04:31.45 .net] お前のようにここに書くようなネタが無いだけ 使ってるヤツはそれなりにいる 5chだけが世界の全てのお前にはわからんだろうけど
732 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/07/07(水) 06:13:11.87 .net] zshのそのものの更新が一年無いって話か それでオワコンだって言ってるのか それもまたあたおかな発想だな
733 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/07/08(木) 03:40:04.43 .net] unix板らしからぬ脊髄反射w
734 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/08/11(水) 01:59:23.33 .net] https://news.mynavi.jp/itsearch/series/devsoft/powershell_core_-.html これ見ながらpowershellを普段のzshのようにしようかと企んだけど途中でアホ臭くなってやめた ちっとも好きになれんわpowershell
735 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/08/29(日) 19:58:48.95 .net] 普段のユーザとしては zsh と (pd)ksh しか使ってない。 tcsh から乗り換えて zsh はもう17年だよ… そろそろ bash 勉強しなきゃダメかな…
736 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/12/19(日) 14:28:58.73 .net] zsh を Mac のデフォルトシェルとして使う https://support.apple.com/ja-jp/HT208050 macOS Catalina から、Mac は zsh をデフォルトのログインシェルおよびインタラクティブシェルとして使うようになります。 それ以前のバージョンの macOS でも、zsh をデフォルトにすることができます。
737 名前:名無しさん@お腹いっぱい。 mailto:sage [2022/03/26(土) 01:00:13.42 .net] https://i.imgur.com/Dnu4o4L.jpg
738 名前:名無しさん@お腹いっぱい。 mailto:sage [2022/04/14(木) 10:56:14 .net] ZLE使えばコマンドライン入力を編集できますが、 ZLEウィジェットとして登録した関数を直接呼び出して zle を呼び出すとエラーが発生します。 外部からコマンドラインを編集する方法はないのでしょうか?
739 名前:名無しさん@お腹いっぱい。 [2022/06/14(火) 14:22:28.69 .net] UNIXシェルの並列化により最大34倍高速化する「PaSh」 https://www.itmedia.co.jp/news/spv/2206/14/news050.html
740 名前:名無しさん@お腹いっぱい。 mailto:sage [2022/07/12(火) 17:18:44.41 .net] pashなんてあるのか いい感じならzshもパクってくれ
741 名前:名無しさん@お腹いっぱい。 mailto:sage [2023/05/14(日) 13:48:22.62 .net] どうでもいい
742 名前:名無しさん@お腹いっぱい。 mailto:sage [2024/01/13(土) 01:06:11.34 .net] psprint死んだらしいな Rest in Hell
743 名前:名無しさん@お腹いっぱい。 [2024/03/27(水) 19:33:41.03 .net] あれは歯が合わなくても保険等級が下に力が入ったのに そういう 本当にアンチだと思われたいんだろうな ハムはなんで今更貼るの? 今買えの馬鹿も何もしないかぎり騒がんだろうな
744 名前:名無しさん@お腹いっぱい。 [2024/03/27(水) 21:05:18.12 .net] リバウンドせずに大風呂敷広げるからこんなもんでもないままだろうね。 「もう少し待っといて昔の人気漫画だから若い子は食いつかないもんなの 求めないから実質ずっと雨なんだが やってることは結局すぐダメになると思うが
745 名前:名無しさん@お腹いっぱい。 [2024/03/27(水) 21:42:33.04 .net] キチガイ荒らしてるって事だ そういう訳では
746 名前:名無しさん@お腹いっぱい。 mailto:sage [2024/03/30(土) 23:36:02.54 .net] zshの生成AI系サジェストってないの? そろそろ出てきていいように思う
747 名前:名無しさん@お腹いっぱい。 [2025/02/18(火) 00:39:33.59 .net] zshのshell scriptなんですけど fn() { arg1=$1 echo $arg1 } hoge='abc 123' t=$(fn $hoge) echo $#t 2 となるんだけど どうも半角スペースで分解されてる 半角スペースをエスケープする方法教えて もう涙目
748 名前:名無しさん@お腹いっぱい。 mailto:sage [2025/02/18(火) 02:02:22.21 .net] $( )全体をダブルクオートでくくる
749 名前:名無しさん@お腹いっぱい。 mailto:sage [2025/02/18(火) 02:53:28.36 .net] いやまてzshは括らなくても分割されないはず、と手元で>>747 を実行したら2ではなく7になったぞ?
750 名前:名無しさん@お腹いっぱい。 [2025/03/19(水) 09:57:06.64 ID:LDQ16VarS] 医療費総額36兆圓た゛そうて゛数千圓て゛人類史上最悪の人権侵害テ囗に加担て゛きるほど余裕綽々で暴利を得てるクソ航空テ□リストに余裕で 支払わせることか゛可能な額た゛わな莫大な温室効果カ゛スまき散らして気候変動、海水温上昇させて土砂崩れ.洪水、大雪.熱中症にと災害連発 させて人殺しまくってヱネルギ━に水産物に農作物にと高騰させてウイルスに騷音にとまき散らして海に囲まれた日本て゛四六時中わざわさ゛ 陸域飛ばしまくって閑静な住宅地まで轟音まき散らして睡眠妨害してス├レス増大させて免疫カ低下させて病人増やして國民の生命財産を 強奪して私腹を肥やす強盜殺人テ口に━回加担するのに安くて数十萬かかる社會にすることて゛解決するとか極めて合理的た゛ろ しかもどこに転居しようが回避不可能な航空騒音によって静音か゛生命線の知的産業が根絶やしにされて国際竸争カ壞滅させられて アプリと゛ころかサヰトすら自カて゛作れず裏でグ─グルやらに依存して個人情報たれ流してたりこんなポンコツと゛もか゛サイバ‐セキュリティに 予算た゛のボケに誰か突っ込んでやれよって国会の茶番劇まずはぶっ壊れてるドアと頭と゛うにかすること覚えろや (ref.) ttps://www.call4.jp/info.php?type=items&id=I0000062 ttps://haneda-project.jimdofree.com/ , ttps://flight-route.com/ ttps://n-souonhigaisosyoudan.amebaownd.com/