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/
112 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/29(土) 22:23:27.12 .net] >>111 うーむ,ほんとだ.複数リダイレクトできるのも便利なんだが. bash でいけるならいいか.シェルスクリプトで zsh は使わないよね? setopt multios の状態で,試しにクローズしてやってみたけど, $ command1 2>/dev/stdout >&- | command2 command1: line n: write error: Bad file descripter と怒られる.command1 の 1 を破棄しないといけないのかと思ったが $ command1 2>/dev/stdout >/dev/null >&- | command2 command1: line n: write error: Bad file descripter 変わらず. $ command1 2>/dev/stdout >&- >/dev/null | command2 にしたら意図通りエラーが無くなった.リダイレクトの順番で 挙動が変わるのがよくわからんけど,あまり深入りしないほうがいいかな.
113 名前:93 mailto:sage [2012/12/30(日) 00:58:27.95 .net] >>108 ありがとうございます。そっか、2>&1 を特別視してましたが これも単なるリダイレクトなんですね。
114 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/30(日) 16:32:16.44 .net] >>112 代わって深入りしといたよ。 >/dev/null >&- だと最終的に close(1) されてるから無効だけど >&- >/dev/null だと close(1) 後に open してるから有効になる。 >&- とか <> とかあんまり用途が思い付かなかったけど、 >&- には multios 下での用途があるのか。multios 下でも特殊なことをしなければ不要な気がするけど。
115 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/30(日) 17:23:02.43 .net] 環境によって挙動に予想がつかないところがあるから、結局は # 伝統的な方法 command1 2>&1 >/dev/null | command2 # プロセス置換を使う command1 >/dev/null 2>>(command2) あたりで落ち着くな 念を入れるなら /dev/null のかわりに >&- を使えばいいのか 昔から思ってるけど、リダイレクトの周りの空白の入れ方って悩ましいよね ファイル記述子の場合は制限があるし 最近は空白を使わずに詰めて書くことが多いかな
116 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/30(日) 18:33:08.52 .net] さっぱり話題についていけん・・・(´・ω・`) manを読む努力せんとなぁ
117 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/30(日) 19:50:17.40 .net] >>115 リダイレクト先がファイルパスなら空白入れてるわ 数字なら詰めて書く…っていうか詰めないと駄目か?
118 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/01/08(火) 22:50:20.01 .net] 配列の要素の最大・最小を返す機能てないですか?こんな感じで $ a=(1 3 2) $ echo $a[MAX] 3 さすがにないですかね?でもzshならやってくれそうな気も
119 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/01/08(火) 23:30:46.18 .net] 変数で大小判定させて より大きければ変数1をそれにする :MAX処理 より小さければ変数2をそれにする :min処理 というシェルスクリプトでいけそうだな。
120 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/01/09(水) 00:46:12.87 .net] echo ${${(n)a}[-1]} とか。${} が二重になるのがちょっといやなんだよなあ。
121 名前:同じ要領で最小つくればいい mailto:sage [2013/01/09(水) 01:11:52.84 .net] できた。.zshrcに書いて0以上の整数値を因数にぶちこんで動作する Max() { x=$1 for i in $@ do if test $x -lt $i ; then ^ x=$i fi done echo $x } ********* 動作の一例 ********* Max -10 -1 -1 Max -10 2 -1 1 2
122 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/01/09(水) 02:23:48.76 .net] >>120 ありがとうございます。(n)でnumericalソートを意味するんでしょうかね? ただ、man zshparamを見てみたんですがソート云々のオプションはなさそうでした。 どの辺見ればいいですか? >>121 いやそれは・・・
123 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/01/09(水) 02:49:41.16 .net] zshexpn
124 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/01/09(水) 03:04:57.95 .net] >>123 ありがとうございます!
125 名前:118 mailto:sage [2013/01/09(水) 23:30:08.16 .net] 何度もすいません、配列絡みでもう1つ質問させてください。 zshの配列の要素数って上限ありますか? $ test=({1..300000}) $ echo $test[270000] zsh: subscript too big: 270000 bashだとちゃんと返してくれるのですが・・・。 $ for((i=1;i<300000;i++)) ; do test[$i]=$i ; done $ echo ${test[270000]} 270000
126 名前:名無しさん@お腹いっぱい。 [2013/01/09(水) 23:49:41.44 .net] >>125 やってみたけど、 $ test=({1..300000}) $ echo $test[270000] 270000 $ echo $ZSH_VERSION 5.0.0 $ uname -a Darwin thyme.local 12.2.1 Darwin Kernel Version 12.2.1: Thu Oct 18 16:32:48 PDT 2012; root:xnu-2050.20.9~2/RELEASE_X86_64 x86_64 i386 MacBookAir5,2 Darwin
127 名前:118 mailto:sage [2013/01/10(木) 00:11:06.98 .net] >>126 4.3.17だったのですが、5.0.2に上げたらあっさりできました・・・ やはりzshはこまめにアップデートしたほうがいいですね。 どうもありがとうございました。
128 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/01/10(木) 04:29:38.47 .net] これか > The arbitrary limit on parameter subscripts (262144) has been removed. As it was not > configurable and tested in an inconvenient place it was deemed preferable to remove it completely. > The limit was originally introduced to prevent accidental creation of a large parameter array > by typos that generated assignments along the lines of "12345678=0". The general advice is not to do that.
129 名前:名無しさん@お腹いっぱい。 [2013/01/10(木) 10:41:43.81 .net] ★★★チベットの独立は日本の核心的利益である★★★ jbbs.livedoor.jp/bbs/read.cgi/study/3729/1226114724/78 ¥¥¥¥¥¥¥『万有サロン』書き込み大賞・総額100万円¥¥¥¥¥¥¥¥¥¥¥¥ この掲示板に優秀な書き込みをして、総額100万円の賞金をゲットしよう!(*^^)v 万有サロン jbbs.livedoor.jp/study/3729/ 書き込み大賞の詳細 jbbs.livedoor.jp/bbs/read.cgi/study/3729/1069922074/78- 書き込み大賞の詳細(資料倉庫内) www2.tba.t-com.ne.jp/a-z/omake/banyu/taisho.htm また、あらゆる疑問に関する質問を、携帯電話やメールでも受け付けています。 電話番号 080-4437-4187 メール aaa-zzz@tba.t-com.ne.jp ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
130 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/01/29(火) 21:47:07.59 .net] 配列をexportするのって駄目なんだっげ? export array=(a b c)てやったら怒られた
131 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/01/30(水) 00:38:13.63 .net] >>130 そのコード/bin/shだとokみたいやけど、zshやとエラーなるね ary=(x y z); export ary ってやらないとダメっぽい あと、typesetでごにょごにょやってもいけるみたいやけど、どっちにしても1ステートメントでは無理なのかも
132 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/01/30(水) 03:06:16.11 .net] >>131 うーむary=(x y z); export aryでエラーは出ないんだけど、子プロには届いてないっぽい shも同じだわ 配列ってそういうもんだったっけ?
133 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/01/30(水) 13:36:49.42 .net] >>132 配列はexportできんらしい。しらんかた ttp://www.bookshelf.jp/2ch/unix/1266642605.html#125 ttp://www.mazn.net/blog/2008/11/29/161.html
134 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/01/30(水) 19:21:02.51 .net] zshなら…それでもzshなら何とかしてくれる
135 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/01/31(木) 08:42:34.96 .net] そもそもどういう経緯で「配列を環境変数に使える」って思い込みができたんだろう PATHだって:でくっつけた文字列でしょ?
136 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/01/31(木) 15:55:45.30 .net] 環境変数という概念が介在していないように見える。 シェル変数をプロセス間で持ち回るにはexport、ぐらいの認識なんじゃね?
137 名前:130 mailto:sage [2013/02/01(金) 00:22:47.76 .net] >>135 そんなに変な発想かな?できたらできたで便利だと思うんだけど 実装されていないのは、オーバーヘッドがでかいから? or それとも単に需要がない? >>136 その程度の認識です、自分あんま詳しくないもんで つか、正しくは「プロセス間で持ち回る」じゃなくて「子プロセスに渡す」だよね
138 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/01(金) 00:28:42.05 .net] ちょっと実験してみたのですが $ zsh --version zsh 5.0.2 (x86_64-redhat-linux-gnu) $ typeset -ix i $ i=1 $ typeset -ax a $ a=(a b) $ typeset +m i integer exported i $ typeset +m a array exported a $ cat file typeset +m i echo "i="$i typeset +m a echo "a="$a $ zsh file exported i i=1 a= 結局、typeset -xすると、-iや-aなどの他の属性が消されてしまうということかな 関数のexportもできたら便利だと思ったけど、関数はtypest -fによる属性だからこれも無理かな
139 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/02(土) 10:49:55.09 .net] 環境変数はシェル変数ではないから基本的には用途違い(ともいいきれないか)だけど、 子シェルに配列変数を渡したいってことかな。それも環境変数的に。 export ENV="$(typeset -p i a)" zsh -c 'eval $ENV; ...' とかはしたくないってことなんだよね。 typeset -xT FOO foo が近いかな。これも子シェルで typeset しないとだめだから大差ないか。 ついでに separator と同じ文字が使えないし。 typeset -xT FOO foo foo=(a b) zsh -c 'typeset -xT FOO foo; ...' どこで使うのかしらないけど↑の ENV みたいなんを .zsh* でなんかすれば なんとかなんじゃない? どーしてもやりたければ。
140 名前:130 mailto:sage [2013/02/05(火) 02:08:57.36 .net] >>139 例示thx。そのやり方はさすがに面倒なんで諦めます 以前ならawkとかperlとかpythonでやってたような数値演算込みのスクリプト処理を 最近は何でもかんでもzshでやろうとする癖が・・・
141 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/21(木) 03:45:07.04 .net] 関数の中身を履歴に加えることってできませんか?たとえば $ hoge(){ echo fuga } $ hoge fuga $ history 1 hoge(){\necho fuga\n} 2 hoge となりますが、こんなふうに関数の中で実行したものも履歴に残って欲しいんです。 $ history 1 hoge(){\necho fuga\n} 2 hoge 3 echo fuga
142 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/21(木) 21:08:43.40 .net] 否定する気はないけど、何のために? 対象って全関数じゃないよね。
143 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/22(金) 09:23:39.85 .net] プロファイラがほしいってこと? 大地氏の software design 記事のデバッグ編見た方がよさそう
144 名前:141 mailto:sage [2013/02/23(土) 03:41:02.81 .net] >>142 例えばあるファイルをサーチして開く、という自作の関数を実行した後 そのファイルをまた開きたい場合、履歴に入ってればCtrl+Pですぐ呼べますよね。 全関数はもちろんありえないですが、関数の任意の部分をコマンドなりディレクティブなりで 設定してそういうことができたりしないかなと思いまして。 >>143 プロファイラって言うんですかねこういうの?
145 名前:141 mailto:sage [2013/02/23(土) 04:51:43.04 .net] すみません、単に print -s でいけました。失礼しました。
146 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/04(月) 00:37:19.72 .net] echo | cd すると (pwd now: ~) って出るけどこれ何のための仕様かな 別に入力で何か変わるわけじゃないようだけど
147 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/04(月) 05:21:31.15 .net] zsh はパイプラインの右端はカレントシェルで実行されるから ksh 系以外のシェルとは挙動が変わる
148 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/09(土) 23:52:53.89 .net] あーそうなんだ。 % {echo $ZSH_SUBSHELL} 0 % {echo $ZSH_SUBSHELL} | cat 1 % echo $ZSH_SUBSHELL | cat 0 確かに…?最後が 0 になるのは展開のタイミングかな? なんで右端が current なのかね。 てか cd の出力理由の話とは違うような。 出力は pipe であることが条件の1つみたいだし、 その条件下では右端で current であることも条件になるかもしれないけど。
149 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/10(日) 01:09:01.89 .net] cd でカレントディレクトリが変わるから注意喚起してるんでは
150 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/10(日) 01:16:01.54 .net] 最後が 0 になるのは echo が内部コマンドでフォークする必要がないから
151 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/15(金) 23:36:21.15 .net] >>149 あー普通 pipe でディレクトリ変えることないから何かおかしいんじゃないかって?かねえ。 >>150 内部コマンドって builtin のこと?だとすると ↓ の説明がつかないかと。 というかその条件は {echo $ZSH_SUBSHELL} でも同じような。 % command echo $ZSH_SUBSHELL | cat 0 % /bin/echo $ZSH_SUBSHELL | cat 0 つかまたちょっと色々試してたらよくわからんことにでくわしてしまった。 1つめは固まらないで2つめが固まる。builtin/command で固まるか変わる。 うーん… % : 1>&2 | : =(:) % : | : =(:) まあ気にしない方がいいね。 理由がすぐわかるならちょっと知りたいけど。
152 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/20(水) 05:29:38.35 .net] : って何ですか?trueを返すコマンド?
153 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/20(水) 09:48:22.60 .net] 何もしないコマンド
154 名前:名無しさん@お腹いっぱい。 [2013/03/20(水) 11:46:11.62 .net] 引数の展開は行う。ので、その副次的結果も発生する。
155 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/20(水) 11:49:58.10 .net] >>152 run-help : でわからないかな。
156 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/24(日) 12:44:28.54 .net] setopt auto_pushd しておいて cd -[TAB] して番号でディレクトリを移動できるのが便利なんだけど、 zshの補完機能全般においても、補完候補一覧から番号で選択できるように できないのかな。 候補が一つになるまで文字入力とTAB入力を繰り返すとか、 TABを何度も入力して候補を選択するとか面倒で…。
157 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/27(水) 02:54:31.59 .net] >>156 zsh anything.el-like widget https://github.com/zsh-users/zaw これを一般の補完候補に拡張すればいいんだろうけど、 そんなに必要か?
158 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/27(水) 04:24:23.65 .net] anything.elてあのemacsの? すごいすごいって聞くけどemacs自体使わないのでどうすごいのか分からない 誰か産業でオナシャス↓
159 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/03/27(水) 04:31:50.98 .net] ごめんググれば色々あるね まぁ試してみよ
160 名前:156 mailto:sage [2013/03/28(木) 02:43:23.75 .net] >>157 ディレクトリの移動についてはcdrとzawを入れたらだいぶ楽になった。 これならたしかに番号入力要らない感じ。 あと補完機能全般についてはauto-fuを入れたら少し楽になった。 数年ぶりにzshの設定ファイルをいじったんだけど、 いつの間にかものすごく進化しててびっくり。
161 名前:名無しさん@お腹いっぱい。 [2013/04/21(日) 22:13:45.79 .net] unix.oskp.net たまにチェックしてるサイトだがWindows+SFUでzsh動いたみたいだな〜( ̄∀ ̄) 割と便利そうだ
162 名前: 忍法帖【Lv=12,xxxPT】(1+0:8) [2013/04/21(日) 23:02:00.42 .net] cygwinとどっちがいいの?
163 名前:名無しさん@お腹いっぱい。 [2013/04/22(月) 08:27:55.62 .net] そういう質問をする人には区別が付かないんじゃないかなあ
164 名前:名無しさん@お腹いっぱい。 [2013/04/23(火) 22:56:28.65 .net] cygwinもInterixもただなんだし両方つかってみればどうかな cygwinはソフト多い、動作遅い SFUは動くソフト少ない、動作速い て感じ
165 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/04/24(水) 00:18:37.11 .net] 動作の遅さでzsh含めたUnix環境あまり使ってなかったから SFUに手を出してみるかな。
166 名前: 忍法帖【Lv=2,xxxP】(1+0:8) [2013/04/24(水) 22:36:07.82 .net] cygwinってなんであんな遅いんやろね……
167 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/04/25(木) 01:18:54.85 .net] lessを実行してるのに.zshenvの中身が呼ばれておかしいなと思ってたら /usr/bin/lesspipe.shの先頭が#!/bin/shになってるせいだった いやぁ何事かと焦った
168 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/04/25(木) 02:40:52.09 .net] >>166 cygwinはminttyだけあればいい
169 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/04/25(木) 03:26:19.93 .net] 昔は遅い遅いと言われてきたが、最近のマルチコア、SSDな環境ではどうなんだろ 案外ストレス感じなかったりして
170 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/04/25(木) 07:35:47.37 .net] fork&execまわりが特に遅いと思う。もともとWindowsにない機能だから しょうがないとは思うけど。
171 名前: 忍法帖【Lv=2,xxxP】(1+0:8) [2013/04/25(木) 07:40:15.22 .net] >>168 じゃあ各種コマンドはどうすんの?mingw?
172 名前:名無しさん@お腹いっぱい。 [2013/04/25(木) 08:59:39.61 .net] CygwinはWindowsサブシステムやAPIを経由してNTカーネルとやりとりするけど、 SFU(SUA)はInterixサブシステムが直接NTカーネルとやりとりするんだが、オーバーヘッドが少ない分、動作が速いらしい。 昔のSFUはCygwinと同じUNIXらいくなツールセットだったけど InterixサブシステムはNTカーネルで動くUNIXレイヤーなのでネイティブ反応速度が可能
173 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/04/25(木) 22:23:34.52 .net] 便利そうで意外に使ってる人を見ない>SFU つか、最近のWindowsはマシなシェルを備えてるんじゃなかった?よく知らんけど
174 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/04/25(木) 23:07:21.58 .net] SUA入れてみようと思ったら非推奨になってるし technet.microsoft.com/ja-jp/library/hh831568
175 名前:名無しさん@お腹いっぱい。 [2013/04/26(金) 23:34:05.62 .net] すみません,凄く単純な質問があります. % a="-l" % ls $a → OK % a="-l -a" % ls $a ls: 無効なオプション -- ' ' 後者でエラーがでるのを回避するにはどうすればよいのでしょうか? echo ls $a は「ls -l -a」なので,エラーになる理由がよく分かりません. 参考になるサイトだけでも紹介いただけるとありがたいです. よろしくお願いいたします.
176 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/04/26(金) 23:44:22.86 .net] FAQ だね zsh はデフォルトでは空白分割しない 一時的に ls ${=a} として挙動を変えるか setopt SH_WORD_SPLIT でデフォルトを変更するか 普段から zsh スクリプトを書いてるとデフォルトの動作の方が楽だな まあ楽をするために敢えてこうしてるはずだが、他のシェルに合わせる人も多いな
177 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/04/27(土) 00:07:38.65 .net] lsのオプションの l と a とは -la と書けるからこれでどうだ? 空白問題は解かずに回避できないか?
178 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/04/27(土) 00:15:24.46 .net] ヘビーユーザはそっちほうが多いのかな 例えばどういうときに楽ですか?
179 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/04/27(土) 09:18:26.90 .net] a=(-l -a)
180 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/04/27(土) 10:11:47.23 .net] >>175-176 evalすればええんちゃうの
181 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/04/29(月) 22:00:05.61 .net] $=a でだめな理由が? zsh 以外でも動くようにとか? まあ >>179 でいいと思うけど。 >>178 分割してほしくないとき。そういうことはきいてない? 簡単な例だと % ls -1 a b b c % for i in *; ls $i とか。当然 shwordsplit でも "$i" と書けばいい。言うまでもないか。 それがいちいち面倒、というかどんなデータがくるか判らなかったり、 多くのファイルがあって全ファイル名を把握してないときに space がきてもいいようにとりあえず "$i" って書くなら 最初からそれがデフォルトの方が助かる。 分けたきゃ >>179 みたいにも書けるしね。 単なる文字列として変数に入れてるのに たまたま space が入ってると意図しない分割になるんが厄介。 ものによるけど、指定したときだけそう動いてくれればいい。特に使い捨てではないスクリプトでは。 なんか書いてたら長くなった。失礼。
182 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/05/01(水) 02:22:13.74 .net] space含む場合は確かに便利かも。自分の場合はまずないので それじゃあbashと同じでいいやって感じかな。まぁ好みの問題か
183 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/05/02(木) 00:26:34.98 .net] space含む場合に便利ってより、逆だとspace含む場合にわずらわしいって感じかな。
184 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/05/06(月) 18:02:00.60 .net] for ((count = 0.0; count < 1.0; count += 0.05)) do echo $count done これの出力結果は、 0.0000000000 0.0500000000 0.1000000000 ... といった感じになります。 出力の桁数の調整はどうしたらできるでしょうか???
185 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/05/06(月) 18:49:23.25 .net] printfっていう便利な組み込み関数があってね
186 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/05/06(月) 22:32:40.55 .net] なるほど。これは便利 % printf '%.2f\n' 0.3333333333 0.33
187 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/05/09(木) 23:47:47.47 .net] $- で出力される文字の意味って何ですか?
188 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/05/10(金) 00:03:18.93 .net] >>187 知らんかったからman引いてみた zshall で見つからんかったけど、man bash に載ってた > The current set of options may be found in $-. 一応試してみると % echo $- 05689JNXZghiklms % setopt +0 % echo $- 5689JNXZghiklms になるから、bash と同じように扱われてるっぽい
189 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/05/10(金) 11:11:43.81 .net] >>188 ありがとう 自分もzshall見たのですが記載がないぽいんですよね
190 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/05/10(金) 13:07:29.04 .net] 載ってるやん - <S> Flags supplied to the shell on invocation or by the set or setopt commands.
191 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/05/10(金) 13:29:32.20 .net] 検索しにくいよなぁ。
192 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/05/12(日) 14:16:16.53 .net] zshallを見ると、自分はzshの全機能の1割も使ってないかもなぁ、と思えてくる
193 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/05/13(月) 11:33:48.11 .net] それでいいのだ (ごみの山の中に一片の価値のあるものを見つけられたならそれは幸せである)
194 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/05/13(月) 12:46:49.94 .net] うむ zshに限らないけど、何年たっても「こういう機能があったんだ!」て気付くのが楽しいね
195 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/05/14(火) 00:48:01.11 .net] シェルは一生使う手足みたいな道具だからねえ
196 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/05/14(火) 00:52:19.52 .net] 私はシェルになりたい
197 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/05/14(火) 20:59:02.64 .net] 俺がzshだ!
198 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/06/03(月) 23:05:06.97 .net] $(builtin foo) って command bar くらいのコストかかんだね。 同じ桁くらいの。 まあそれはそうか。 (builtin foo) みたいに subshell 内みたいだし。 でも $(<foo) みたいに速いといいよなあ。 普通気にしないだろうけど。
199 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/06/06(木) 07:42:18.91 .net] ビルドに挑戦したんだけど、zsh.mdhが作られなくて失敗する。 で、いろいろ試して、 export GREP_OPTIONS='--color=auto --binary-files=without-match -Hn' が原因。ファル名と行番号は常に表示したいから設定してたんだけどなぁ。
200 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/06/06(木) 16:58:39.47 .net] 出力の形式を変更しちゃうようなのをデフォルト設定するのはどうかと。 grepはシェルスクリプトなどでも使われるわけだし。 そういう設定はシェルのエイリアスとかを使うのがいいんじゃない。
201 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/06/07(金) 00:24:46.83 .net] なぜだろう、alias ではなく環境変数を使いたい
202 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/06/07(金) 08:47:31.34 .net] そういやgrepyのオプションは色々トラブルの元になると聞くね 自分もエイリアスにしてるわ
203 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/06/07(金) 15:33:58.76 .net] 結局aliasに戻したんだけど、GNU grep検出した時点で、configureが GREP_OPTIONSをクリアしてくれても良い気はするの。
204 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/06/07(金) 18:56:18.89 .net] ママにビルドしてもらえ
205 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/06/07(金) 23:55:22.54 .net] ママは死んだ。もういない。あのときパパに alias をみられなければ…
206 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/06/21(金) 11:15:57.03 .net] locateを使ったファイル名補完ってできますか? $ vi http<キー> でlocate httpの結果を補完候補にしてくれるような。 できれば通常の補完とは使い分けたいので、別のキーに割り当てられるといいんですが。
207 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/06/21(金) 13:50:45.82 .net] >>206 zshに死角なし…あとはよろしく man zshcompwid の COMPLETION MATCHING CONTROL を理解すればなんとかなりそう zle -C loc menu-expand-or-complete _loc bindkey '^X^X' loc _loc() { files=($(locate $words[2])) # ここのパターンの指定をどうにかすればいけそう compadd -M 'e:.=**' $files }
208 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/06/21(金) 23:55:39.39 .net] anchorという意味がよくわからないけど、こんな感じにしたら動いているようです。 _loc() { local wd=$words[-1] if [ "$wd" = "" ]; then return 0 fi files=($(locate $wd | grep ".*${wd}[^/]*$")) compadd -M 'l:||.=**' -- $files } ちなみに、これを思いついたのはEverythingが便利すぎるからなんですが、 www.voidtools.com/ unixコマンドラインで同じようなのってないんでしょうか。 cursesでlocateをインクリメンタルサーチするとか… でもやっぱりできるならシェルでやるのが一番便利でしょうね。
209 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/06/22(土) 01:07:55.66 .net] >>208 r:とかl:とか色々でてきてあきらめた…でも動いたようで良かったですな。 そういうツールは聞いたことないけど、UNIX的思想からいくとlocateの結果をgrepでフィルタして…となりそう
210 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/07/14(日) NY:AN:NY.AN .net] zshをログインシェルにして、boot直後にターミナルでログインするとき、プロンプトが出るまで30秒くらいかかる。compinitしてるのが原因と思われるが、皆さんどうですか? x86_64 Intel(R) Core(TM) i7 CPU 950 @ 3.07GHz GenuineIntel GNU/Linux メモリ12GB、HDD 1TB、Gentoo Linuxです。
211 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/07/14(日) NY:AN:NY.AN .net] そのスペックでcompinitに30秒はさすがにおかしいと思われ
212 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/07/14(日) NY:AN:NY.AN .net] ATOMですらcompinitは一瞬だから他の原因だろう