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/
529 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/04/17(火) 21:53:10.70 .net] 普通にechoするんじゃ何がダメなんだ
530 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/04/22(日) 17:49:31.90 .net] ここでも出てるんだが、 https://stackoverflow.com/questions/7342233/zsh-completion-inside-quoted-strings git commit 'Add f<TAB> としたときfで始まるファイル名を補完してくれたらいいんだが
531 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 01:54:35.99 .net] 以下のように (( )) で浮動小数演算したところ思わぬ結果になりました。 a と b の型がどのように決まるのか教えていただけないでしょうか? $ cat hoge a=$(( 1e-6 * 1e-6 )) (( b = 1e-6 * 1e-6 )) typeset -p a typeset -p b $ zsh hoge typeset a=9.9999999999999998e-13 #型は文字列? typeset -F b=0.0000000000 #小数点以下10桁固定の型? $ zsh --version zsh 5.4.2 (x86_64-redhat-linux-gnu)
532 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 19:34:11.16 .net] よく知らずに答えるけど $(())を使うと文字列 (())を使うと浮動少数や整数 になるんじゃないの?
533 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/08(火) 19:03:35.11 .net] 型はtypeset指定しなければ暗黙的に決まるわけだが、 floatは指数形式と小数点固定形式があるが(())内の暗黙floatは勝手に後者になる そもそも型とその出力表現は別の概念なのにごっちゃになってんのが糞仕様すぎ
534 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/09(水) 06:50:48.71 .net] タブ補完でmigemo使う方法って知られてるの
535 名前:名無しさん@お腹いっぱい。 [2018/05/22(火) 02:54:33.28 .net] 知り合いから教えてもらったパソコン一台でお金持ちになれるやり方 時間がある方はみてもいいかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 NQSL6
536 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/25(金) 04:02:31.48 .net] zsh/filesって今はいらない子なの? これないと引数の最大バイト数の制約がきついよね?
537 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/25(金) 07:37:08.83 .net] 自分が必要なら使えばいい 俺は引数の最大バイト数制限なんてここ10年ひっかかったことないし あったとしたら自分のマシンじゃないからzshじゃなかったはず
538 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/25(金) 23:18:15.61 .net] 昔のLinuxはかなり少なかったらしいね>最大バイト数制限 昔初めて.zshrcを作る際に他人の設定をパクってそのまま惰性で使ってる人多そう・・・
539 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/26(土) 17:34:56.75 .net] そもそもこれが作られた目的って緊急メンテ用だし www.zsh.org/mla/workers/2008/msg00617.html より It wasn't intended to provide full versions of the commands, the commands which are there don't implement all the POSIX options, etc. It's intended to provide enough to be useful in emergencies. Most people shouldn't need to use it.
540 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/27(日) 11:56:00.46 .net] >>530 ,>>534 hata-o.jp/kian/index?tools#sazae
541 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/27(日) 20:12:13.46 .net] >>540 530ってそれ関係ある?
542 名前:名無しさん@お腹いっぱい。 [2018/07/10(火) 10:11:10.94 .net] kill screen<TAB> とか補完して候補が1個しかなかった場合、即PIDに補完されるけど、 候補が1個でもメニューを表示するようにできないかな 他のコマンドの場合はいいんだけど、killの場合は確認しないと不安で zstyle ':completion:*' menu select=1 はやってみたけど変わらなかった
543 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/13(月) 19:24:28.55 .net] pgrepやpkillでよくね?
544 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/14(火) 20:21:50.30 .net] 補完でできた方がよくね?
545 名前:名無しさん@お腹いっぱい。 mailto:age [2018/08/29(水) 06:32:57.35 .net] bash が入ってるが zsh は入ってない環境って例えばどんなの?
546 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/29(水) 11:47:58.80 .net] >>545 20年前のUNIX/Linuxサーバー 10年前のならだいたい入ってると思うけど、それでもデフォルトで入ってるかどうかはわからん
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の引数まではチェックしないけど、そこまでは元々期待してない。