例えば。
RPROMPT="%{$(echotc UP 1)%}right prompt text%{$(echotc DO 1)%}"
きっと問題がある。
>>12
zle_highlight=(default:fg=green)
使ったことないんであんましらんけど。
探検
zsh その7
2012/06/21(木) 00:53:49.15
2012/06/22(金) 19:36:07.80
echo 1*0 てやったら
10 100 110 120 130 140 150
て出るんですが、普通にそのまま出力させるにはどうすればよかですか?
10 100 110 120 130 140 150
て出るんですが、普通にそのまま出力させるにはどうすればよかですか?
2012/06/22(金) 20:03:39.66
なにをいってるのかと思った。
echo '1*0'
echo '1*0'
2012/06/22(金) 22:35:13.56
うちのzshじゃそのまま出る
$ echo 1*0
1*0
何のオプションが効いてるんだろ
$ echo 1*0
1*0
何のオプションが効いてるんだろ
2012/06/22(金) 22:45:25.39
普通にワイルドカードでしょ。
2012/06/22(金) 23:26:21.98
>>17
setopt noglob かな。なんでそんなもん set してんのかしらんけど。
setopt noglob かな。なんでそんなもん set してんのかしらんけど。
2012/06/23(土) 07:33:49.35
2113
2012/06/23(土) 12:22:12.382012/06/23(土) 14:09:40.51
2012/06/23(土) 15:12:00.69
2413
2012/06/24(日) 12:04:00.45 たびたびすいません。Emacs+multi-termだと崩れてました。
普段のkonsoleなら問題なかったのですが。
普段のkonsoleなら問題なかったのですが。
2012/06/24(日) 15:29:14.48
それは multi-term の問題では。
どう崩れるのかしらんけど。
どう崩れるのかしらんけど。
2012/06/26(火) 22:49:57.86
bindkey で Ctrl+@ や Ctrl+- を設定したいんですが、 どうやればいいんでしょうか?
"^@" や "^-" では駄目でした。
"^@" や "^-" では駄目でした。
2012/06/26(火) 23:06:25.29
^@ は普通それでいい。できないなら端末の問題かな。^- というコードはない。
xxd があればその入力にそれぞれ打ち込んでみるといい。
何か分かるかもしれない。
xxd があればその入力にそれぞれ打ち込んでみるといい。
何か分かるかもしれない。
2826
2012/06/30(土) 21:05:11.422012/07/03(火) 21:32:24.19
\@ って bindkey \@ foo ってこと?
@ なら bindkey @ foo でいいけど。
xxd がなければ ESC-x describe-key-briefly ^@ ってやれば一応入力キーは判るよ。
あと Ctrl-- も端末で適当なコードが入るようにすれば、それに bindkey して使えるよ。
putty でどうやるのかしらんけど。
@ なら bindkey @ foo でいいけど。
xxd がなければ ESC-x describe-key-briefly ^@ ってやれば一応入力キーは判るよ。
あと Ctrl-- も端末で適当なコードが入るようにすれば、それに bindkey して使えるよ。
putty でどうやるのかしらんけど。
2012/07/03(火) 22:48:13.11
そういえば今は setopt prompt_sp なんてあるんだな。今っつーか結構前からか。
unsetopt prompt_cr
PROMPT_EOL_MARK='%B%S%#%s%b'
PROMPT_EOL_MARK_LENGTH=1
PROMPT=$'%{$PROMPT_EOL_MARK\e[$[COLUMNS-PROMPT_EOL_MARK_LENGTH-2]C \r%}'$PROMPT
とかいう設定はとっくに不要になってんだよなあ。
unsetopt prompt_cr
PROMPT_EOL_MARK='%B%S%#%s%b'
PROMPT_EOL_MARK_LENGTH=1
PROMPT=$'%{$PROMPT_EOL_MARK\e[$[COLUMNS-PROMPT_EOL_MARK_LENGTH-2]C \r%}'$PROMPT
とかいう設定はとっくに不要になってんだよなあ。
31名無しさん@お腹いっぱい。
2012/07/15(日) 14:52:02.96 文字入力の補完はできますか?
emacsのようにどこかに補完リストを作っておいて、
たとえば、
ssh lo[補完キー]と入力すると、
ssh longname.com
と変換されるようにしたいのですが。
emacsのようにどこかに補完リストを作っておいて、
たとえば、
ssh lo[補完キー]と入力すると、
ssh longname.com
と変換されるようにしたいのですが。
2012/07/15(日) 14:56:10.33
できます
2012/07/15(日) 15:11:50.45
sshならデフォルトで~/.ssh/configをもとに補完してくれるはずだけどな
3431
2012/07/15(日) 15:25:23.25 できました。
すみません。なぜか出来ないと思い込んでいました。
すみません。なぜか出来ないと思い込んでいました。
2012/07/19(木) 20:31:24.41
使い始めたばかりの初心者なのだけれども、alias -g L='| $PAGER ' でヒストリに L のまま残るのが嫌。
ヒストリには | less と展開して残すか、Lに続けてtabを押したら | less と展開するようにはできないだろうか。
ヒストリには | less と展開して残すか、Lに続けてtabを押したら | less と展開するようにはできないだろうか。
3635
2012/07/19(木) 20:48:45.962012/07/22(日) 00:03:39.42
ls とか less hogehoge をヒストリに残さないようにするためにはどうしたらいいんだろ。
38名無しさん@お腹いっぱい。
2012/07/22(日) 01:09:18.09 setopt hist_ignore_space
alias ls=' ls'
alias ls=' ls'
3937
2012/07/22(日) 02:59:09.18 >>38
おお、なるほど。これはいい。
おお、なるほど。これはいい。
2012/07/22(日) 15:44:35.87
zsh 5.0.0 available
http://www.zsh.org/mla/users/2012/msg00495.html
http://www.zsh.org/mla/users/2012/msg00495.html
2012/07/22(日) 18:14:30.56
うむ
2012/07/25(水) 21:36:44.74
5.0がでたってのにぜんぜんもりあがらないな。
43名無しさん@お腹いっぱい。
2012/07/25(水) 21:57:41.95 使うヒトは当たり前のように開発版の4.3使っていて、
5は4.3のバージョンだけ付け替えたようなものだから
目立った変化がない。
5は4.3のバージョンだけ付け替えたようなものだから
目立った変化がない。
2012/07/25(水) 22:32:53.87
まさか正式リリースで5.0になるとは…4.4だと思ってたのに
2012/07/25(水) 23:12:32.02
まあ、linuxのカーネルが3.0になったからってなんてことはなかったのと一緒か。
2012/07/28(土) 00:02:42.74
4.3 って開発版だったっけ?そうだった気もするな
2012/07/28(土) 00:09:42.18
>>46
少なくとも4系は4.xのxが偶数がリリース版だった、はず
少なくとも4系は4.xのxが偶数がリリース版だった、はず
48名無しさん@お腹いっぱい。
2012/07/28(土) 03:21:52.56 5のリリースメールから引用
> Version 5.0.0 of zsh is the new stable release. There are many changes
> since the last stable release series, 4.2, イカリャク
> Version 5.0.0 of zsh is the new stable release. There are many changes
> since the last stable release series, 4.2, イカリャク
2012/07/28(土) 12:32:34.28
Debianでは4.3系を長らく使ってるから開発版って認識は薄かったなぁ
(zsh-betaってのもあるのにzshの方が4.3.10)
(zsh-betaってのもあるのにzshの方が4.3.10)
50名無しさん@お腹いっぱい。
2012/07/28(土) 12:52:30.74 macportsも、よくわかってないヒトがメンテしてるのかな。
zsh @4.2.7 (shells)
zsh-devel @5.0.0 (shells)
zsh @4.2.7 (shells)
zsh-devel @5.0.0 (shells)
2012/07/28(土) 13:55:20.23
パッケージのdevelとかbetaってのはソフトウェア自体の安定版/開発版だのとはまた別の基準でつけられるものでしょ
安定性重視のシステムで安定パッケージと認められるためにはそれなりのテストや議論を経てこれなら大丈夫って認められる必要があるんじゃね、しらんけど
安定性重視のシステムで安定パッケージと認められるためにはそれなりのテストや議論を経てこれなら大丈夫って認められる必要があるんじゃね、しらんけど
2012/07/28(土) 14:24:13.58
hoge-develって、実行時には必要ないincludeファイルとかだけをまとめたパッケージだろ。
本体パッケージとバージョンは同じじゃないといけない、しらんけど
本体パッケージとバージョンは同じじゃないといけない、しらんけど
53名無しさん@お腹いっぱい。
2012/07/28(土) 14:32:40.96 >>52
それredhatのRPM
それredhatのRPM
54名無しさん@お腹いっぱい。
2012/07/28(土) 14:39:12.82 5が出る直前は
zsh @4.2.7 (shells)
zsh-devel @4.3.17 (shellls)
だったね。
zsh @4.2.7 (shells)
zsh-devel @4.3.17 (shellls)
だったね。
2012/07/28(土) 19:56:17.51
devel ってか head 的な?
2012/07/28(土) 20:01:47.83
stableとunstable的な
2012/07/30(月) 03:31:08.03
>>52
devel=正式以外含めた最新版だと思ってる人が多いとけど実際はその認識でも間違いはない感じ
名前通り開発する人が必要なものが追加されてる版、なのでバージョンも含めていろいろ試せるように最新なのが普通
商業用だったりディストリ毎のルールとかもあるから一概にはいえないけど
devel=正式以外含めた最新版だと思ってる人が多いとけど実際はその認識でも間違いはない感じ
名前通り開発する人が必要なものが追加されてる版、なのでバージョンも含めていろいろ試せるように最新なのが普通
商業用だったりディストリ毎のルールとかもあるから一概にはいえないけど
2012/08/03(金) 21:05:43.37
?
59名無しさん@お腹いっぱい。
2012/08/05(日) 00:53:22.29 zshって、コマンド内にコメント含められないの?bashだとできるのに。
ls -al#a
みたいな。
ls -al#a
みたいな。
60名無しさん@お腹いっぱい。
2012/08/05(日) 01:36:11.72 setopt interactive_comments
対話環境(スクリプトではない、プロンプトが出る環境)でコメントを機能させる
対話環境(スクリプトではない、プロンプトが出る環境)でコメントを機能させる
6159
2012/08/05(日) 02:18:34.27 おお、そんなオプションが。ありがとうございます
2012/08/08(水) 10:45:37.83
test
2012/08/08(水) 10:49:20.39
test
2012/08/08(水) 11:10:55.60
2012/08/08(水) 15:18:49.64
すいません、ありがとうございます。
2012/08/20(月) 18:07:07.61
非インタラクティブシェルとして起動するとき、aliasなどの設定ファイルを
読み込ませたいのですが、どうすればいいでしょうか?
読み込ませたいのですが、どうすればいいでしょうか?
2012/08/20(月) 18:10:02.01
.zshenv に書く。
2012/09/24(月) 16:20:06.91
$HISTFILEを手動で編集した後
fc -Rしても変更が反映されない(削除した行がbck-i-searchに候補として出てくる)んだけど
どうして?
fc -Rしても変更が反映されない(削除した行がbck-i-searchに候補として出てくる)んだけど
どうして?
2012/09/24(月) 21:39:45.49
追加されてるからかな
2012/11/18(日) 16:28:40.94
.zsh_history に日本語含んだコマンドは正常に保存されないの?
そういうコマンドも履歴検索したいんだが.
そういうコマンドも履歴検索したいんだが.
2012/11/18(日) 17:28:46.97
環境依存なのかな? こっちだとできた ↑
2012/11/18(日) 17:54:23.99
>>71
うそ,まじで.自分の手元では
Windows7 64bit, zsh 4.3.12 (i686-pc-cygwin)
Ubuntu12.04, zsh 4.3.17 (i686-pc-linux-gnu)
のどちらでも無理だ.
echo ほげ
が
echo ほぃ?
みたいに .zsh_history に保存される.マルチバイトを考慮してない感じがする.
うそ,まじで.自分の手元では
Windows7 64bit, zsh 4.3.12 (i686-pc-cygwin)
Ubuntu12.04, zsh 4.3.17 (i686-pc-linux-gnu)
のどちらでも無理だ.
echo ほげ
が
echo ほぃ?
みたいに .zsh_history に保存される.マルチバイトを考慮してない感じがする.
2012/11/18(日) 18:42:48.03
>>72
MacOSX 10.7.5 zsh 5.0.0 (MacPortsからのインストール)
lessやtailでみると echo ほぃ? になってるけど
historyで確認すると echo ほげ となっているので,
C-rではちゃんと下になるな
MacOSX 10.7.5 zsh 5.0.0 (MacPortsからのインストール)
lessやtailでみると echo ほぃ? になってるけど
historyで確認すると echo ほげ となっているので,
C-rではちゃんと下になるな
2012/11/18(日) 20:18:46.93
2012/11/18(日) 20:36:46.76
>>73
zsh 4.3 でも history コマンドなら日本語表示できるわ.
zsh のバージョンを zsh-5.0.0 を試してみたら
73 と同じように C-r で日本語でも大丈夫だった.
理想的には .zsh_history 自体にきちんと保存して欲しいけど.
zsh 4.3 でも history コマンドなら日本語表示できるわ.
zsh のバージョンを zsh-5.0.0 を試してみたら
73 と同じように C-r で日本語でも大丈夫だった.
理想的には .zsh_history 自体にきちんと保存して欲しいけど.
2012/11/23(金) 01:34:55.51
おー、文字によって化けたり化けなかったりするんだねー。
まあ内部形式なのかもしれないし、これで正しいのかも。少し無理があるか。
まあ内部形式なのかもしれないし、これで正しいのかも。少し無理があるか。
77名無しさん@お腹いっぱい。
2012/12/03(月) 01:31:10.17 .zsh_history は、0x80-0x9f の符号が現れると
0x83 をメタキャラクタとしてくっつける。
作者はこれを仕様と言ってるんで、ヒストリファイル
を使う場合は手動で除去するしかないね。。。
(またはソースコードでこの部分をコメントアウトして
コンパイルするか…)
0x83 をメタキャラクタとしてくっつける。
作者はこれを仕様と言ってるんで、ヒストリファイル
を使う場合は手動で除去するしかないね。。。
(またはソースコードでこの部分をコメントアウトして
コンパイルするか…)
2012/12/03(月) 23:51:59.68
あーそうなんだ。
.zsh_history は 0x80-0x9f の符号を何として扱ってるんだろうね。
.zsh_history は 0x80-0x9f の符号を何として扱ってるんだろうね。
2012/12/10(月) 20:38:45.04
算術演算をする (( )) ですが、中でプロセス置換 `` や $() を使うと挙動に違いが出ます。
$ cat hoge
0]1
$ (( i = `cat hoge | cut -d] -f2` ))
zsh: command not found: i
$ (( i = $(cat hoge | cut -d] -f2) ))
$ echo $i
1
zshでは``と$()は同一なものではないのですか?bashだと両者は同じになるのようですが。
$ cat hoge
0]1
$ (( i = `cat hoge | cut -d] -f2` ))
zsh: command not found: i
$ (( i = $(cat hoge | cut -d] -f2) ))
$ echo $i
1
zshでは``と$()は同一なものではないのですか?bashだと両者は同じになるのようですが。
2012/12/10(月) 21:11:51.31
>>80
知らんかったけど、backquoteじゃなくて、$() 使った方がいいよ、って言うてはるね
backquoteはネストできん。などなど…
ttp://zsh.sourceforge.net/Guide/zshguide05.html#l117
知らんかったけど、backquoteじゃなくて、$() 使った方がいいよ、って言うてはるね
backquoteはネストできん。などなど…
ttp://zsh.sourceforge.net/Guide/zshguide05.html#l117
2012/12/11(火) 00:22:27.86
$() 使った方がいいと思うけど、それは別として↓の結果を見ると
bash は ((...)) をとにかく arithmetic evaluation として解釈して、
zsh は arithmetic evaluation として解釈できるときだけしてるように見えるね。
% bash -c '(( echo [ ))'
bash: ((: echo [ : syntax error: invalid arithmetic operator (error token is "[ ")
% zsh -c '(( echo [ ))'
[
`...` の中にあるんだから解釈できるとは思うけど置換前に判別してるのかね。
man には More precisely, `((...))' is equivalent to `let "..."'. ってあるしバグなんじゃない?
bash は ((...)) をとにかく arithmetic evaluation として解釈して、
zsh は arithmetic evaluation として解釈できるときだけしてるように見えるね。
% bash -c '(( echo [ ))'
bash: ((: echo [ : syntax error: invalid arithmetic operator (error token is "[ ")
% zsh -c '(( echo [ ))'
[
`...` の中にあるんだから解釈できるとは思うけど置換前に判別してるのかね。
man には More precisely, `((...))' is equivalent to `let "..."'. ってあるしバグなんじゃない?
8380
2012/12/13(木) 08:46:32.662012/12/14(金) 00:51:33.91
% zsh -c '(( `echo "["|echo 1` ))'
zsh:1: command not found: 1
% zsh -c '(( `echo "[]"|echo 1` ))'
% zsh -c '(( `echo "("|echo 1` ))'
zsh:1: command not found: 1
% zsh -c '(( `echo "()"|echo 1` ))'
って感じで ( でも出るよ。
括弧の対応がとれてないとなるのかもね。多分それだけじゃないけど。
バグなら法則性を求めてもあんまりしかたない気はするけど。
zsh:1: command not found: 1
% zsh -c '(( `echo "[]"|echo 1` ))'
% zsh -c '(( `echo "("|echo 1` ))'
zsh:1: command not found: 1
% zsh -c '(( `echo "()"|echo 1` ))'
って感じで ( でも出るよ。
括弧の対応がとれてないとなるのかもね。多分それだけじゃないけど。
バグなら法則性を求めてもあんまりしかたない気はするけど。
2012/12/16(日) 17:38:41.99
/etc/z*を読み込まないようにする設定ってユーザ権限の範囲でできない?
2012/12/16(日) 17:56:45.58
「そう思うんならお前がパッチ書け」で終了
2012/12/16(日) 17:58:19.89
それおもしろくないからやめた方がいいよ。
2012/12/16(日) 18:08:16.07
>>85
~/.zshenv の中で setopt NO_GLOBAL_RCS すれば一番最初に読まれる zshenv 以外はスルーされるんじゃね
~/.zshenv の中で setopt NO_GLOBAL_RCS すれば一番最初に読まれる zshenv 以外はスルーされるんじゃね
2012/12/17(月) 16:30:14.11
zsh-5.0.0(4.3系でも一緒でした)で補完候補に日本語ファイルがある場合、 文字化けするんじゃなくて$'\202'$'\240'.txt の様に文字コードで表示されて しまうのですが、原因に心当たりがある方いらっしゃいましたらご教示下さい。
2012/12/18(火) 02:35:53.33
configureで--enable-multibyteされなかったとか?
2012/12/18(火) 08:38:57.41
レスありがとうございます、環境をもうちょっと詳しく書きますね。
Androidでmultibyte-enableなzshを動かすべく、arm-linux上でstaticに
ビルドし、正常動作するバイナリを作成しました。これをAndroidに持って
来ると一見普通に動いている様なんですが、補完候補の日本語がコード
表示されてしまうんです。原因何だと思いますか?
Androidでmultibyte-enableなzshを動かすべく、arm-linux上でstaticに
ビルドし、正常動作するバイナリを作成しました。これをAndroidに持って
来ると一見普通に動いている様なんですが、補完候補の日本語がコード
表示されてしまうんです。原因何だと思いますか?
2012/12/22(土) 14:13:21.16
setopt printeightbit
2012/12/28(金) 00:59:04.41
標準エラー出力のみをパイプに出力するには
$ command 2>&1 >/dev/null | command2
とすればいいようですが、これの仕組みが分かりません。
なんで 2>&1 としてるのに標準エラー出力は/dev/nullに行かないのですか?
$ command 2>&1 >/dev/null | command2
とすればいいようですが、これの仕組みが分かりません。
なんで 2>&1 としてるのに標準エラー出力は/dev/nullに行かないのですか?
2012/12/28(金) 07:34:36.52
>>93
何回目のFAQだよw
2>&1を実行している時点で標準出力(パイプ)が標準エラー出力にコピーされる。
(以後、2はパイプを指す)
次に、>/dev/null で標準出力が/dev/nullに変更されるが、
これはすでに2にコピー済みの標準エラー出力には関係ない。
何回目のFAQだよw
2>&1を実行している時点で標準出力(パイプ)が標準エラー出力にコピーされる。
(以後、2はパイプを指す)
次に、>/dev/null で標準出力が/dev/nullに変更されるが、
これはすでに2にコピー済みの標準エラー出力には関係ない。
2012/12/28(金) 08:34:16.69
>>93
zshのバグです。でも便利なのでずっと直されてません。
zshのバグです。でも便利なのでずっと直されてません。
2012/12/28(金) 09:39:01.22
>>95
え?
え?
2012/12/28(金) 17:42:22.34
おまえらってzedつかってる?
2012/12/28(金) 18:03:32.29
x="a b c"; for i in $x; do echo $i; done
ってやると、ash/bash だと、
a
b
c
って出ますが、zsh だと、
a b c
となってしまいます。
ash/bashと同じ動きをさせるにはどうすればいいでしょうか?
ってやると、ash/bash だと、
a
b
c
って出ますが、zsh だと、
a b c
となってしまいます。
ash/bashと同じ動きをさせるにはどうすればいいでしょうか?
2012/12/28(金) 18:20:19.15
>>98
set -o shwordsplit
set -o shwordsplit
2012/12/28(金) 18:21:41.94
2012/12/28(金) 18:24:31.16
2012/12/28(金) 18:36:16.44
2012/12/28(金) 18:36:52.25
>>101
ム板に帰れ
ム板に帰れ
2012/12/28(金) 18:44:56.48
2012/12/28(金) 18:44:57.11
記憶が朧げだが、昔シェルスクリプト入門を謳ってネットで配布されていたテキストでも
同じ間違いをやらかしてなかったか
同じ間違いをやらかしてなかったか
2012/12/28(金) 21:07:49.29
おお、いつのまにか zsh 5.0.2 が。
数値記法の 1_000 ってそういえば ruby にそんなんあったな。すっかり忘れてたけど。
setopt 的でもあるのか。
数値記法の 1_000 ってそういえば ruby にそんなんあったな。すっかり忘れてたけど。
setopt 的でもあるのか。
10793
2012/12/29(土) 18:53:23.862012/12/29(土) 20:40:41.91
>>107
リダイレクトは左から順に処理されるだけ.
普通のコマンドは
1 => /dev/stdout
2 => /dev/stderr
だが,2>&1 は「2の出力先を1と同じにする」から
1 => /dev/stdout
2 => /dev/stdout (= 1)
になって,>/dev/null は「1の出力先を /dev/null」にするから
1 => /dev/null
2 => /dev/stdout
になる.
>/dev/null で 1 と 2 が同時に /dev/null となることはない.
パイプは /dev/stdout の出力が次のコマンドの /dev/stdin になるので,
この場合は標準エラー出力だけパイプされる.
ちなみに &> /dev/null とすると「1と2の出力先を(同時に) /dev/null にする」
ことができる.man bash で RIDIRECTION のところ読め.
リダイレクトは左から順に処理されるだけ.
普通のコマンドは
1 => /dev/stdout
2 => /dev/stderr
だが,2>&1 は「2の出力先を1と同じにする」から
1 => /dev/stdout
2 => /dev/stdout (= 1)
になって,>/dev/null は「1の出力先を /dev/null」にするから
1 => /dev/null
2 => /dev/stdout
になる.
>/dev/null で 1 と 2 が同時に /dev/null となることはない.
パイプは /dev/stdout の出力が次のコマンドの /dev/stdin になるので,
この場合は標準エラー出力だけパイプされる.
ちなみに &> /dev/null とすると「1と2の出力先を(同時に) /dev/null にする」
ことができる.man bash で RIDIRECTION のところ読め.
109108
2012/12/29(土) 21:23:21.25 書いてて思ったんだけど,
command1 2>&1 >/dev/null | command2
じゃなくて
command 2>/dev/stdout >/dev/null | command2
って書いても同じ意味だよね? 後者で書いたほうが
わかりやすいと思うんだけど,環境によっては動かなかったり
するのかな?
command1 2>&1 >/dev/null | command2
じゃなくて
command 2>/dev/stdout >/dev/null | command2
って書いても同じ意味だよね? 後者で書いたほうが
わかりやすいと思うんだけど,環境によっては動かなかったり
するのかな?
2012/12/29(土) 21:25:32.38
>>93 は dup2 を知らないとよく陥る勘違いですな
FAQ になるのもわかる
せっかく zsh を使ってるのだから
command1 >&- 2> >(command2)
とでもするのが良いのかもしれん
FAQ になるのもわかる
せっかく zsh を使ってるのだから
command1 >&- 2> >(command2)
とでもするのが良いのかもしれん
2012/12/29(土) 21:38:57.37
>>109
zsh のデフォルトの setopt multios な環境では意図通りには動かないね
setopt nomultios では大丈夫だけど
デフォルトの環境だと
command1 2>/dev/stdout >&- | command2
ときちんとクローズする必要があるんじゃないかな
zsh のデフォルトの setopt multios な環境では意図通りには動かないね
setopt nomultios では大丈夫だけど
デフォルトの環境だと
command1 2>/dev/stdout >&- | command2
ときちんとクローズする必要があるんじゃないかな
2012/12/29(土) 22:23:27.12
>>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
にしたら意図通りエラーが無くなった.リダイレクトの順番で
挙動が変わるのがよくわからんけど,あまり深入りしないほうがいいかな.
うーむ,ほんとだ.複数リダイレクトできるのも便利なんだが.
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
にしたら意図通りエラーが無くなった.リダイレクトの順番で
挙動が変わるのがよくわからんけど,あまり深入りしないほうがいいかな.
2012/12/30(日) 16:32:16.44
>>112
代わって深入りしといたよ。
>/dev/null >&- だと最終的に close(1) されてるから無効だけど
>&- >/dev/null だと close(1) 後に open してるから有効になる。
>&- とか <> とかあんまり用途が思い付かなかったけど、
>&- には multios 下での用途があるのか。multios 下でも特殊なことをしなければ不要な気がするけど。
代わって深入りしといたよ。
>/dev/null >&- だと最終的に close(1) されてるから無効だけど
>&- >/dev/null だと close(1) 後に open してるから有効になる。
>&- とか <> とかあんまり用途が思い付かなかったけど、
>&- には multios 下での用途があるのか。multios 下でも特殊なことをしなければ不要な気がするけど。
2012/12/30(日) 17:23:02.43
環境によって挙動に予想がつかないところがあるから、結局は
# 伝統的な方法
command1 2>&1 >/dev/null | command2
# プロセス置換を使う
command1 >/dev/null 2>>(command2)
あたりで落ち着くな
念を入れるなら /dev/null のかわりに >&- を使えばいいのか
昔から思ってるけど、リダイレクトの周りの空白の入れ方って悩ましいよね
ファイル記述子の場合は制限があるし
最近は空白を使わずに詰めて書くことが多いかな
# 伝統的な方法
command1 2>&1 >/dev/null | command2
# プロセス置換を使う
command1 >/dev/null 2>>(command2)
あたりで落ち着くな
念を入れるなら /dev/null のかわりに >&- を使えばいいのか
昔から思ってるけど、リダイレクトの周りの空白の入れ方って悩ましいよね
ファイル記述子の場合は制限があるし
最近は空白を使わずに詰めて書くことが多いかな
2012/12/30(日) 18:33:08.52
さっぱり話題についていけん・・・(´・ω・`)
manを読む努力せんとなぁ
manを読む努力せんとなぁ
2012/12/30(日) 19:50:17.40
2013/01/08(火) 22:50:20.01
配列の要素の最大・最小を返す機能てないですか?こんな感じで
$ a=(1 3 2)
$ echo $a[MAX]
3
さすがにないですかね?でもzshならやってくれそうな気も
$ a=(1 3 2)
$ echo $a[MAX]
3
さすがにないですかね?でもzshならやってくれそうな気も
2013/01/08(火) 23:30:46.18
変数で大小判定させて
より大きければ変数1をそれにする :MAX処理
より小さければ変数2をそれにする :min処理
というシェルスクリプトでいけそうだな。
より大きければ変数1をそれにする :MAX処理
より小さければ変数2をそれにする :min処理
というシェルスクリプトでいけそうだな。
2013/01/09(水) 00:46:12.87
echo ${${(n)a}[-1]}
とか。${} が二重になるのがちょっといやなんだよなあ。
とか。${} が二重になるのがちょっといやなんだよなあ。
2013/01/09(水) 01:11:52.84
できた。.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
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
2013/01/09(水) 02:23:48.76
2013/01/09(水) 02:49:41.16
zshexpn
2013/01/09(水) 03:04:57.95
>>123
ありがとうございます!
ありがとうございます!
125118
2013/01/09(水) 23:30:08.16 何度もすいません、配列絡みでもう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
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 >>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
やってみたけど、
$ 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
127118
2013/01/10(木) 00:11:06.982013/01/10(木) 04:29:38.47
これか
> 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.
> 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 ★★★チベットの独立は日本の核心的利益である★★★
http://jbbs.livedoor.jp/bbs/read.cgi/study/3729/1226114724/78
¥¥¥¥¥¥¥『万有サロン』書き込み大賞・総額100万円¥¥¥¥¥¥¥¥¥¥¥¥
この掲示板に優秀な書き込みをして、総額100万円の賞金をゲットしよう!(*^^)v
万有サロン
http://jbbs.livedoor.jp/study/3729/
書き込み大賞の詳細
http://jbbs.livedoor.jp/bbs/read.cgi/study/3729/1069922074/78-
書き込み大賞の詳細(資料倉庫内)
http://www2.tba.t-com.ne.jp/a-z/omake/banyu/taisho.htm
また、あらゆる疑問に関する質問を、携帯電話やメールでも受け付けています。
電話番号 080-4437-4187
メール aaa-zzz@tba.t-com.ne.jp
¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
http://jbbs.livedoor.jp/bbs/read.cgi/study/3729/1226114724/78
¥¥¥¥¥¥¥『万有サロン』書き込み大賞・総額100万円¥¥¥¥¥¥¥¥¥¥¥¥
この掲示板に優秀な書き込みをして、総額100万円の賞金をゲットしよう!(*^^)v
万有サロン
http://jbbs.livedoor.jp/study/3729/
書き込み大賞の詳細
http://jbbs.livedoor.jp/bbs/read.cgi/study/3729/1069922074/78-
書き込み大賞の詳細(資料倉庫内)
http://www2.tba.t-com.ne.jp/a-z/omake/banyu/taisho.htm
また、あらゆる疑問に関する質問を、携帯電話やメールでも受け付けています。
電話番号 080-4437-4187
メール aaa-zzz@tba.t-com.ne.jp
¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
2013/01/29(火) 21:47:07.59
配列をexportするのって駄目なんだっげ?
export array=(a b c)てやったら怒られた
export array=(a b c)てやったら怒られた
2013/01/30(水) 00:38:13.63
>>130
そのコード/bin/shだとokみたいやけど、zshやとエラーなるね
ary=(x y z); export ary ってやらないとダメっぽい
あと、typesetでごにょごにょやってもいけるみたいやけど、どっちにしても1ステートメントでは無理なのかも
そのコード/bin/shだとokみたいやけど、zshやとエラーなるね
ary=(x y z); export ary ってやらないとダメっぽい
あと、typesetでごにょごにょやってもいけるみたいやけど、どっちにしても1ステートメントでは無理なのかも
2013/01/30(水) 03:06:16.11
2013/01/30(水) 13:36:49.42
>>132
配列はexportできんらしい。しらんかた
ttp://www.bookshelf.jp/2ch/unix/1266642605.html#125
ttp://www.mazn.net/blog/2008/11/29/161.html
配列はexportできんらしい。しらんかた
ttp://www.bookshelf.jp/2ch/unix/1266642605.html#125
ttp://www.mazn.net/blog/2008/11/29/161.html
2013/01/30(水) 19:21:02.51
zshなら…それでもzshなら何とかしてくれる
2013/01/31(木) 08:42:34.96
そもそもどういう経緯で「配列を環境変数に使える」って思い込みができたんだろう
PATHだって:でくっつけた文字列でしょ?
PATHだって:でくっつけた文字列でしょ?
2013/01/31(木) 15:55:45.30
環境変数という概念が介在していないように見える。
シェル変数をプロセス間で持ち回るにはexport、ぐらいの認識なんじゃね?
シェル変数をプロセス間で持ち回るにはexport、ぐらいの認識なんじゃね?
137130
2013/02/01(金) 00:22:47.762013/02/01(金) 00:28:42.05
ちょっと実験してみたのですが
$ 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による属性だからこれも無理かな
$ 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による属性だからこれも無理かな
2013/02/02(土) 10:49:55.09
環境変数はシェル変数ではないから基本的には用途違い(ともいいきれないか)だけど、
子シェルに配列変数を渡したいってことかな。それも環境変数的に。
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* でなんかすれば
なんとかなんじゃない?
どーしてもやりたければ。
子シェルに配列変数を渡したいってことかな。それも環境変数的に。
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* でなんかすれば
なんとかなんじゃない?
どーしてもやりたければ。
140130
2013/02/05(火) 02:08:57.36 >>139
例示thx。そのやり方はさすがに面倒なんで諦めます
以前ならawkとかperlとかpythonでやってたような数値演算込みのスクリプト処理を
最近は何でもかんでもzshでやろうとする癖が・・・
例示thx。そのやり方はさすがに面倒なんで諦めます
以前ならawkとかperlとかpythonでやってたような数値演算込みのスクリプト処理を
最近は何でもかんでもzshでやろうとする癖が・・・
2013/02/21(木) 03:45:07.04
関数の中身を履歴に加えることってできませんか?たとえば
$ hoge(){
echo fuga
}
$ hoge
fuga
$ history
1 hoge(){\necho fuga\n}
2 hoge
となりますが、こんなふうに関数の中で実行したものも履歴に残って欲しいんです。
$ history
1 hoge(){\necho fuga\n}
2 hoge
3 echo fuga
$ hoge(){
echo fuga
}
$ hoge
fuga
$ history
1 hoge(){\necho fuga\n}
2 hoge
となりますが、こんなふうに関数の中で実行したものも履歴に残って欲しいんです。
$ history
1 hoge(){\necho fuga\n}
2 hoge
3 echo fuga
2013/02/21(木) 21:08:43.40
否定する気はないけど、何のために?
対象って全関数じゃないよね。
対象って全関数じゃないよね。
2013/02/22(金) 09:23:39.85
プロファイラがほしいってこと?
大地氏の software design 記事のデバッグ編見た方がよさそう
大地氏の software design 記事のデバッグ編見た方がよさそう
144141
2013/02/23(土) 03:41:02.81145141
2013/02/23(土) 04:51:43.04 すみません、単に print -s でいけました。失礼しました。
2013/03/04(月) 00:37:19.72
echo | cd すると (pwd now: ~) って出るけどこれ何のための仕様かな
別に入力で何か変わるわけじゃないようだけど
別に入力で何か変わるわけじゃないようだけど
2013/03/04(月) 05:21:31.15
zsh はパイプラインの右端はカレントシェルで実行されるから
ksh 系以外のシェルとは挙動が変わる
ksh 系以外のシェルとは挙動が変わる
2013/03/09(土) 23:52:53.89
あーそうなんだ。
% {echo $ZSH_SUBSHELL}
0
% {echo $ZSH_SUBSHELL} | cat
1
% echo $ZSH_SUBSHELL | cat
0
確かに…?最後が 0 になるのは展開のタイミングかな?
なんで右端が current なのかね。
てか cd の出力理由の話とは違うような。
出力は pipe であることが条件の1つみたいだし、
その条件下では右端で current であることも条件になるかもしれないけど。
% {echo $ZSH_SUBSHELL}
0
% {echo $ZSH_SUBSHELL} | cat
1
% echo $ZSH_SUBSHELL | cat
0
確かに…?最後が 0 になるのは展開のタイミングかな?
なんで右端が current なのかね。
てか cd の出力理由の話とは違うような。
出力は pipe であることが条件の1つみたいだし、
その条件下では右端で current であることも条件になるかもしれないけど。
2013/03/10(日) 01:09:01.89
cd でカレントディレクトリが変わるから注意喚起してるんでは
2013/03/10(日) 01:16:01.54
最後が 0 になるのは echo が内部コマンドでフォークする必要がないから
2013/03/15(金) 23:36:21.15
>>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 | : =(:)
% : | : =(:)
まあ気にしない方がいいね。
理由がすぐわかるならちょっと知りたいけど。
あー普通 pipe でディレクトリ変えることないから何かおかしいんじゃないかって?かねえ。
>>150
内部コマンドって builtin のこと?だとすると ↓ の説明がつかないかと。
というかその条件は {echo $ZSH_SUBSHELL} でも同じような。
% command echo $ZSH_SUBSHELL | cat
0
% /bin/echo $ZSH_SUBSHELL | cat
0
つかまたちょっと色々試してたらよくわからんことにでくわしてしまった。
1つめは固まらないで2つめが固まる。builtin/command で固まるか変わる。
うーん…
% : 1>&2 | : =(:)
% : | : =(:)
まあ気にしない方がいいね。
理由がすぐわかるならちょっと知りたいけど。
2013/03/20(水) 05:29:38.35
: って何ですか?trueを返すコマンド?
2013/03/20(水) 09:48:22.60
何もしないコマンド
154名無しさん@お腹いっぱい。
2013/03/20(水) 11:46:11.62 引数の展開は行う。ので、その副次的結果も発生する。
2013/03/20(水) 11:49:58.10
2013/03/24(日) 12:44:28.54
setopt auto_pushd しておいて
cd -[TAB] して番号でディレクトリを移動できるのが便利なんだけど、
zshの補完機能全般においても、補完候補一覧から番号で選択できるように
できないのかな。
候補が一つになるまで文字入力とTAB入力を繰り返すとか、
TABを何度も入力して候補を選択するとか面倒で…。
cd -[TAB] して番号でディレクトリを移動できるのが便利なんだけど、
zshの補完機能全般においても、補完候補一覧から番号で選択できるように
できないのかな。
候補が一つになるまで文字入力とTAB入力を繰り返すとか、
TABを何度も入力して候補を選択するとか面倒で…。
2013/03/27(水) 02:54:31.59
>>156
zsh anything.el-like widget
https://github.com/zsh-users/zaw
これを一般の補完候補に拡張すればいいんだろうけど、
そんなに必要か?
zsh anything.el-like widget
https://github.com/zsh-users/zaw
これを一般の補完候補に拡張すればいいんだろうけど、
そんなに必要か?
2013/03/27(水) 04:24:23.65
anything.elてあのemacsの?
すごいすごいって聞くけどemacs自体使わないのでどうすごいのか分からない
誰か産業でオナシャス↓
すごいすごいって聞くけどemacs自体使わないのでどうすごいのか分からない
誰か産業でオナシャス↓
2013/03/27(水) 04:31:50.98
ごめんググれば色々あるね
まぁ試してみよ
まぁ試してみよ
160156
2013/03/28(木) 02:43:23.75 >>157
ディレクトリの移動についてはcdrとzawを入れたらだいぶ楽になった。
これならたしかに番号入力要らない感じ。
あと補完機能全般についてはauto-fuを入れたら少し楽になった。
数年ぶりにzshの設定ファイルをいじったんだけど、
いつの間にかものすごく進化しててびっくり。
ディレクトリの移動についてはcdrとzawを入れたらだいぶ楽になった。
これならたしかに番号入力要らない感じ。
あと補完機能全般についてはauto-fuを入れたら少し楽になった。
数年ぶりにzshの設定ファイルをいじったんだけど、
いつの間にかものすごく進化しててびっくり。
161名無しさん@お腹いっぱい。
2013/04/21(日) 22:13:45.79162 忍法帖【Lv=12,xxxPT】(1+0:8)
2013/04/21(日) 23:02:00.42 cygwinとどっちがいいの?
163名無しさん@お腹いっぱい。
2013/04/22(月) 08:27:55.62 そういう質問をする人には区別が付かないんじゃないかなあ
164名無しさん@お腹いっぱい。
2013/04/23(火) 22:56:28.65 cygwinもInterixもただなんだし両方つかってみればどうかな
cygwinはソフト多い、動作遅い
SFUは動くソフト少ない、動作速い
て感じ
cygwinはソフト多い、動作遅い
SFUは動くソフト少ない、動作速い
て感じ
2013/04/24(水) 00:18:37.11
動作の遅さでzsh含めたUnix環境あまり使ってなかったから
SFUに手を出してみるかな。
SFUに手を出してみるかな。
166 忍法帖【Lv=2,xxxP】(1+0:8)
2013/04/24(水) 22:36:07.82 cygwinってなんであんな遅いんやろね……
2013/04/25(木) 01:18:54.85
lessを実行してるのに.zshenvの中身が呼ばれておかしいなと思ってたら
/usr/bin/lesspipe.shの先頭が#!/bin/shになってるせいだった
いやぁ何事かと焦った
/usr/bin/lesspipe.shの先頭が#!/bin/shになってるせいだった
いやぁ何事かと焦った
2013/04/25(木) 02:40:52.09
>>166
cygwinはminttyだけあればいい
cygwinはminttyだけあればいい
2013/04/25(木) 03:26:19.93
昔は遅い遅いと言われてきたが、最近のマルチコア、SSDな環境ではどうなんだろ
案外ストレス感じなかったりして
案外ストレス感じなかったりして
2013/04/25(木) 07:35:47.37
fork&execまわりが特に遅いと思う。もともとWindowsにない機能だから
しょうがないとは思うけど。
しょうがないとは思うけど。
171 忍法帖【Lv=2,xxxP】(1+0:8)
2013/04/25(木) 07:40:15.22 >>168
じゃあ各種コマンドはどうすんの?mingw?
じゃあ各種コマンドはどうすんの?mingw?
172名無しさん@お腹いっぱい。
2013/04/25(木) 08:59:39.61 CygwinはWindowsサブシステムやAPIを経由してNTカーネルとやりとりするけど、
SFU(SUA)はInterixサブシステムが直接NTカーネルとやりとりするんだが、オーバーヘッドが少ない分、動作が速いらしい。
昔のSFUはCygwinと同じUNIXらいくなツールセットだったけど InterixサブシステムはNTカーネルで動くUNIXレイヤーなのでネイティブ反応速度が可能
SFU(SUA)はInterixサブシステムが直接NTカーネルとやりとりするんだが、オーバーヘッドが少ない分、動作が速いらしい。
昔のSFUはCygwinと同じUNIXらいくなツールセットだったけど InterixサブシステムはNTカーネルで動くUNIXレイヤーなのでネイティブ反応速度が可能
2013/04/25(木) 22:23:34.52
便利そうで意外に使ってる人を見ない>SFU
つか、最近のWindowsはマシなシェルを備えてるんじゃなかった?よく知らんけど
つか、最近のWindowsはマシなシェルを備えてるんじゃなかった?よく知らんけど
2013/04/25(木) 23:07:21.58
SUA入れてみようと思ったら非推奨になってるし
http://technet.microsoft.com/ja-jp/library/hh831568
http://technet.microsoft.com/ja-jp/library/hh831568
175名無しさん@お腹いっぱい。
2013/04/26(金) 23:34:05.62 すみません,凄く単純な質問があります.
% a="-l"
% ls $a
→ OK
% a="-l -a"
% ls $a
ls: 無効なオプション -- ' '
後者でエラーがでるのを回避するにはどうすればよいのでしょうか?
echo ls $a は「ls -l -a」なので,エラーになる理由がよく分かりません.
参考になるサイトだけでも紹介いただけるとありがたいです.
よろしくお願いいたします.
% a="-l"
% ls $a
→ OK
% a="-l -a"
% ls $a
ls: 無効なオプション -- ' '
後者でエラーがでるのを回避するにはどうすればよいのでしょうか?
echo ls $a は「ls -l -a」なので,エラーになる理由がよく分かりません.
参考になるサイトだけでも紹介いただけるとありがたいです.
よろしくお願いいたします.
2013/04/26(金) 23:44:22.86
FAQ だね
zsh はデフォルトでは空白分割しない
一時的に ls ${=a} として挙動を変えるか
setopt SH_WORD_SPLIT でデフォルトを変更するか
普段から zsh スクリプトを書いてるとデフォルトの動作の方が楽だな
まあ楽をするために敢えてこうしてるはずだが、他のシェルに合わせる人も多いな
zsh はデフォルトでは空白分割しない
一時的に ls ${=a} として挙動を変えるか
setopt SH_WORD_SPLIT でデフォルトを変更するか
普段から zsh スクリプトを書いてるとデフォルトの動作の方が楽だな
まあ楽をするために敢えてこうしてるはずだが、他のシェルに合わせる人も多いな
2013/04/27(土) 00:07:38.65
lsのオプションの l と a とは -la と書けるからこれでどうだ?
空白問題は解かずに回避できないか?
空白問題は解かずに回避できないか?
2013/04/27(土) 00:15:24.46
ヘビーユーザはそっちほうが多いのかな
例えばどういうときに楽ですか?
例えばどういうときに楽ですか?
2013/04/27(土) 09:18:26.90
a=(-l -a)
2013/04/27(土) 10:11:47.23
>>175-176
evalすればええんちゃうの
evalすればええんちゃうの
2013/04/29(月) 22:00:05.61
$=a でだめな理由が?
zsh 以外でも動くようにとか?
まあ >>179 でいいと思うけど。
>>178
分割してほしくないとき。そういうことはきいてない?
簡単な例だと
% ls -1
a
b b
c
% for i in *; ls $i
とか。当然 shwordsplit でも "$i" と書けばいい。言うまでもないか。
それがいちいち面倒、というかどんなデータがくるか判らなかったり、
多くのファイルがあって全ファイル名を把握してないときに
space がきてもいいようにとりあえず "$i" って書くなら
最初からそれがデフォルトの方が助かる。
分けたきゃ >>179 みたいにも書けるしね。
単なる文字列として変数に入れてるのに
たまたま space が入ってると意図しない分割になるんが厄介。
ものによるけど、指定したときだけそう動いてくれればいい。特に使い捨てではないスクリプトでは。
なんか書いてたら長くなった。失礼。
zsh 以外でも動くようにとか?
まあ >>179 でいいと思うけど。
>>178
分割してほしくないとき。そういうことはきいてない?
簡単な例だと
% ls -1
a
b b
c
% for i in *; ls $i
とか。当然 shwordsplit でも "$i" と書けばいい。言うまでもないか。
それがいちいち面倒、というかどんなデータがくるか判らなかったり、
多くのファイルがあって全ファイル名を把握してないときに
space がきてもいいようにとりあえず "$i" って書くなら
最初からそれがデフォルトの方が助かる。
分けたきゃ >>179 みたいにも書けるしね。
単なる文字列として変数に入れてるのに
たまたま space が入ってると意図しない分割になるんが厄介。
ものによるけど、指定したときだけそう動いてくれればいい。特に使い捨てではないスクリプトでは。
なんか書いてたら長くなった。失礼。
2013/05/01(水) 02:22:13.74
space含む場合は確かに便利かも。自分の場合はまずないので
それじゃあbashと同じでいいやって感じかな。まぁ好みの問題か
それじゃあbashと同じでいいやって感じかな。まぁ好みの問題か
2013/05/02(木) 00:26:34.98
space含む場合に便利ってより、逆だとspace含む場合にわずらわしいって感じかな。
2013/05/06(月) 18:02:00.60
for ((count = 0.0; count < 1.0; count += 0.05))
do
echo $count
done
これの出力結果は、
0.0000000000
0.0500000000
0.1000000000
...
といった感じになります。
出力の桁数の調整はどうしたらできるでしょうか???
do
echo $count
done
これの出力結果は、
0.0000000000
0.0500000000
0.1000000000
...
といった感じになります。
出力の桁数の調整はどうしたらできるでしょうか???
2013/05/06(月) 18:49:23.25
printfっていう便利な組み込み関数があってね
2013/05/06(月) 22:32:40.55
なるほど。これは便利
% printf '%.2f\n' 0.3333333333
0.33
% printf '%.2f\n' 0.3333333333
0.33
2013/05/09(木) 23:47:47.47
$- で出力される文字の意味って何ですか?
2013/05/10(金) 00:03:18.93
>>187
知らんかったからman引いてみた
zshall で見つからんかったけど、man bash に載ってた
> The current set of options may be found in $-.
一応試してみると
% echo $-
05689JNXZghiklms
% setopt +0
% echo $-
5689JNXZghiklms
になるから、bash と同じように扱われてるっぽい
知らんかったからman引いてみた
zshall で見つからんかったけど、man bash に載ってた
> The current set of options may be found in $-.
一応試してみると
% echo $-
05689JNXZghiklms
% setopt +0
% echo $-
5689JNXZghiklms
になるから、bash と同じように扱われてるっぽい
2013/05/10(金) 11:11:43.81
2013/05/10(金) 13:07:29.04
載ってるやん
- <S> Flags supplied to the shell on invocation or by the set or setopt commands.
- <S> Flags supplied to the shell on invocation or by the set or setopt commands.
2013/05/10(金) 13:29:32.20
検索しにくいよなぁ。
2013/05/12(日) 14:16:16.53
zshallを見ると、自分はzshの全機能の1割も使ってないかもなぁ、と思えてくる
2013/05/13(月) 11:33:48.11
それでいいのだ
(ごみの山の中に一片の価値のあるものを見つけられたならそれは幸せである)
(ごみの山の中に一片の価値のあるものを見つけられたならそれは幸せである)
2013/05/13(月) 12:46:49.94
うむ
zshに限らないけど、何年たっても「こういう機能があったんだ!」て気付くのが楽しいね
zshに限らないけど、何年たっても「こういう機能があったんだ!」て気付くのが楽しいね
2013/05/14(火) 00:48:01.11
シェルは一生使う手足みたいな道具だからねえ
2013/05/14(火) 00:52:19.52
私はシェルになりたい
2013/05/14(火) 20:59:02.64
俺がzshだ!
2013/06/03(月) 23:05:06.97
$(builtin foo) って command bar くらいのコストかかんだね。
同じ桁くらいの。
まあそれはそうか。 (builtin foo) みたいに subshell 内みたいだし。
でも $(<foo) みたいに速いといいよなあ。
普通気にしないだろうけど。
同じ桁くらいの。
まあそれはそうか。 (builtin foo) みたいに subshell 内みたいだし。
でも $(<foo) みたいに速いといいよなあ。
普通気にしないだろうけど。
2013/06/06(木) 07:42:18.91
ビルドに挑戦したんだけど、zsh.mdhが作られなくて失敗する。
で、いろいろ試して、
export GREP_OPTIONS='--color=auto --binary-files=without-match -Hn'
が原因。ファル名と行番号は常に表示したいから設定してたんだけどなぁ。
で、いろいろ試して、
export GREP_OPTIONS='--color=auto --binary-files=without-match -Hn'
が原因。ファル名と行番号は常に表示したいから設定してたんだけどなぁ。
2013/06/06(木) 16:58:39.47
出力の形式を変更しちゃうようなのをデフォルト設定するのはどうかと。
grepはシェルスクリプトなどでも使われるわけだし。
そういう設定はシェルのエイリアスとかを使うのがいいんじゃない。
grepはシェルスクリプトなどでも使われるわけだし。
そういう設定はシェルのエイリアスとかを使うのがいいんじゃない。
2013/06/07(金) 00:24:46.83
なぜだろう、alias ではなく環境変数を使いたい
2013/06/07(金) 08:47:31.34
そういやgrepyのオプションは色々トラブルの元になると聞くね
自分もエイリアスにしてるわ
自分もエイリアスにしてるわ
2013/06/07(金) 15:33:58.76
結局aliasに戻したんだけど、GNU grep検出した時点で、configureが
GREP_OPTIONSをクリアしてくれても良い気はするの。
GREP_OPTIONSをクリアしてくれても良い気はするの。
2013/06/07(金) 18:56:18.89
ママにビルドしてもらえ
2013/06/07(金) 23:55:22.54
ママは死んだ。もういない。あのときパパに alias をみられなければ…
2013/06/21(金) 11:15:57.03
locateを使ったファイル名補完ってできますか?
$ vi http<キー>
でlocate httpの結果を補完候補にしてくれるような。
できれば通常の補完とは使い分けたいので、別のキーに割り当てられるといいんですが。
$ vi http<キー>
でlocate httpの結果を補完候補にしてくれるような。
できれば通常の補完とは使い分けたいので、別のキーに割り当てられるといいんですが。
2013/06/21(金) 13:50:45.82
>>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
}
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
}
2013/06/21(金) 23:55:39.39
anchorという意味がよくわからないけど、こんな感じにしたら動いているようです。
_loc() {
local wd=$words[-1]
if [ "$wd" = "" ]; then
return 0
fi
files=($(locate $wd | grep ".*${wd}[^/]*$"))
compadd -M 'l:||.=**' -- $files
}
ちなみに、これを思いついたのはEverythingが便利すぎるからなんですが、
http://www.voidtools.com/
unixコマンドラインで同じようなのってないんでしょうか。
cursesでlocateをインクリメンタルサーチするとか…
でもやっぱりできるならシェルでやるのが一番便利でしょうね。
_loc() {
local wd=$words[-1]
if [ "$wd" = "" ]; then
return 0
fi
files=($(locate $wd | grep ".*${wd}[^/]*$"))
compadd -M 'l:||.=**' -- $files
}
ちなみに、これを思いついたのはEverythingが便利すぎるからなんですが、
http://www.voidtools.com/
unixコマンドラインで同じようなのってないんでしょうか。
cursesでlocateをインクリメンタルサーチするとか…
でもやっぱりできるならシェルでやるのが一番便利でしょうね。
2013/06/22(土) 01:07:55.66
>>208
r:とかl:とか色々でてきてあきらめた…でも動いたようで良かったですな。
そういうツールは聞いたことないけど、UNIX的思想からいくとlocateの結果をgrepでフィルタして…となりそう
r:とかl:とか色々でてきてあきらめた…でも動いたようで良かったですな。
そういうツールは聞いたことないけど、UNIX的思想からいくとlocateの結果をgrepでフィルタして…となりそう
2013/07/14(日) NY:AN:NY.AN
zshをログインシェルにして、boot直後にターミナルでログインするとき、プロンプトが出るまで30秒くらいかかる。compinitしてるのが原因と思われるが、皆さんどうですか?
x86_64 Intel(R) Core(TM) i7 CPU 950 @ 3.07GHz GenuineIntel GNU/Linux
メモリ12GB、HDD 1TB、Gentoo Linuxです。
x86_64 Intel(R) Core(TM) i7 CPU 950 @ 3.07GHz GenuineIntel GNU/Linux
メモリ12GB、HDD 1TB、Gentoo Linuxです。
2013/07/14(日) NY:AN:NY.AN
そのスペックでcompinitに30秒はさすがにおかしいと思われ
2013/07/14(日) NY:AN:NY.AN
ATOMですらcompinitは一瞬だから他の原因だろう
2013/07/14(日) NY:AN:NY.AN
ターミナルって、コンソールじゃなくてターミナルってこと?
zsh以外のシェルに戻したら早くなるの?
zsh以外のシェルに戻したら早くなるの?
2013/07/14(日) NY:AN:NY.AN
すみませんが詳しい方のみ回答をお願いします
すみませんが詳しい方は回答のみお願いします
すみませんが詳しい方は回答のみお願いします
2013/07/15(月) NY:AN:NY.AN
216215
2013/07/16(火) NY:AN:NY.AN 追記します。
結果から言うと、compinitでの遅延ではなかったようです。
zshrcを一行ずつコメントアウトしてリブートする(ブート後の初回起動時以外は問題がないためです)
する方法を試しましたが、なぜか再現性が明らかではないのですが、PROMPTを操作する行の有無で
遅延があるか決定されるような印象でした。
一回起動し、速く起動したzshrcで試しにもう一度再起動すると今度は起動が遅かったりしたため、
完全に確定しているわけではありません。今後再調査してみます。
ただ、zshrcに何も記入しない状態では、起動は速いようでした。
また、zshrcの最後の行をecho "zshrc end"としてみると
比較的瞬時にzshrc endが表示され、その後30秒程度の遅延があるようでした。
よってzshrcロードの後に遅延が生じているようでした。
こちらに関してはいつか暇なときにzshrcのソースに当たりたいと思います。
ログインシェルをbashにすると、一瞬で起動しました。
結果から言うと、compinitでの遅延ではなかったようです。
zshrcを一行ずつコメントアウトしてリブートする(ブート後の初回起動時以外は問題がないためです)
する方法を試しましたが、なぜか再現性が明らかではないのですが、PROMPTを操作する行の有無で
遅延があるか決定されるような印象でした。
一回起動し、速く起動したzshrcで試しにもう一度再起動すると今度は起動が遅かったりしたため、
完全に確定しているわけではありません。今後再調査してみます。
ただ、zshrcに何も記入しない状態では、起動は速いようでした。
また、zshrcの最後の行をecho "zshrc end"としてみると
比較的瞬時にzshrc endが表示され、その後30秒程度の遅延があるようでした。
よってzshrcロードの後に遅延が生じているようでした。
こちらに関してはいつか暇なときにzshrcのソースに当たりたいと思います。
ログインシェルをbashにすると、一瞬で起動しました。
2013/07/17(水) NY:AN:NY.AN
.zshrcの後に読まれるのは/etc/zloginと.zloginしか無い
ここで何か変な処理してるんじゃないの
非ログインシェルでzshを起動したときは?
ここで何か変な処理してるんじゃないの
非ログインシェルでzshを起動したときは?
2013/07/17(水) NY:AN:NY.AN
select ループの数字付けのフォーマットを変えられないのかな?
一桁で済むときはいいけど、そうじゃないときはズレるのがどうも気になる
一桁で済むときはいいけど、そうじゃないときはズレるのがどうも気になる
2013/07/19(金) NY:AN:NY.AN
それ俺も思った
zshにしては気が利かないな
zshにしては気が利かないな
2013/07/20(土) NY:AN:NY.AN
>>217
レスが遅れ申し訳ないです。
そう思うんですが、システムには~/.zloginも/etc/zloginも作成していません。これらのファイルはありません。
例えばログインシェルをbashにしてrebootして、bashが立ち上がってからコマンドでzshを立ち上げると
一瞬で起動しました。再現性がありました。
確かにログイン関係で遅延が発生しているっぽいのですが。
.zloginを作成していないことによる問題とは考えにくく(試してはいないのでわかりませんが)、やはりソースに当たる必要がありそうです。
どうもありがとうございました。
レスが遅れ申し訳ないです。
そう思うんですが、システムには~/.zloginも/etc/zloginも作成していません。これらのファイルはありません。
例えばログインシェルをbashにしてrebootして、bashが立ち上がってからコマンドでzshを立ち上げると
一瞬で起動しました。再現性がありました。
確かにログイン関係で遅延が発生しているっぽいのですが。
.zloginを作成していないことによる問題とは考えにくく(試してはいないのでわかりませんが)、やはりソースに当たる必要がありそうです。
どうもありがとうございました。
2013/07/23(火) NY:AN:NY.AN
ログインシェルの場合、読み込み順はこうだよね
/etc/zshenv
$ZDOTDIR/.zshenv
/etc/zprofile
$ZDOTDIR/.zprofile
/etc/zshrc
$ZDOTDIR/.zshrc
/zlogin
$ZDOTDIR/.zlogin
結局再現性がないと問題特定するのは無理なんじゃ
/etc/zshenv
$ZDOTDIR/.zshenv
/etc/zprofile
$ZDOTDIR/.zprofile
/etc/zshrc
$ZDOTDIR/.zshrc
/zlogin
$ZDOTDIR/.zlogin
結局再現性がないと問題特定するのは無理なんじゃ
2013/07/31(水) NY:AN:NY.AN
FreeBSDでHISTFILEが大きくなるとログアウトが遅くなるなあ。
FreeBSD 8.1-RELEASE-p12
zsh 4.3.11 (amd64-portbld-freebsd8.1)
930035バイト、約33000行で10秒くらいかかるようになってた。
Linuxではこんなになったことないんだが。
FreeBSD 8.1-RELEASE-p12
zsh 4.3.11 (amd64-portbld-freebsd8.1)
930035バイト、約33000行で10秒くらいかかるようになってた。
Linuxではこんなになったことないんだが。
2013/08/01(木) NY:AN:NY.AN
>>222
portsのオプションでMEMをoffにすると直ると思う
portsのオプションでMEMをoffにすると直ると思う
2013/08/14(水) NY:AN:NY.AN
俺には関係ないんだけど何そのオプション
2013/08/14(水) NY:AN:NY.AN
>>216
まあ別にいいんだけど、PROMPT に問題がありそうならそれを貼れば?
まあ別にいいんだけど、PROMPT に問題がありそうならそれを貼れば?
226216
2013/09/02(月) 23:23:39.30 大変長らく空いてすいません。
boot直後初回のコンソールログインが非常に時間がかかる件(基本30秒以上だった)ですが、
再現性がなく、何が原因なのか判断に困る状態でしたが、
おそらくハードディスクの不良であったという事が判明しました。
あの後、systemdが起動時に自動でboot後になぜかrebootするようになっていまい、
journalctlなどを見ても原因がはっきりとわからずハードウェア的なものを疑い、
ハードディスク載せ替えを行ったところ、一瞬でログインできるようになりました。
.zshrcなど、設定の問題ではなかったようです。
>>225
PROMPTに問題がありそうとは思っていませんでした。
PROMPTを設定する行為に問題がありそうと思っていました。
ちなみにPROMPTは
PROMPT=$(print "%{\e[00;37m%}{%{\e[01;37m%}%n%{\e[m%}@%{\e[01;37m%}%m%{\e[00;37m%}} $%{\e[m%} ")ですね。特に変哲ありません。
boot直後初回のコンソールログインが非常に時間がかかる件(基本30秒以上だった)ですが、
再現性がなく、何が原因なのか判断に困る状態でしたが、
おそらくハードディスクの不良であったという事が判明しました。
あの後、systemdが起動時に自動でboot後になぜかrebootするようになっていまい、
journalctlなどを見ても原因がはっきりとわからずハードウェア的なものを疑い、
ハードディスク載せ替えを行ったところ、一瞬でログインできるようになりました。
.zshrcなど、設定の問題ではなかったようです。
>>225
PROMPTに問題がありそうとは思っていませんでした。
PROMPTを設定する行為に問題がありそうと思っていました。
ちなみにPROMPTは
PROMPT=$(print "%{\e[00;37m%}{%{\e[01;37m%}%n%{\e[m%}@%{\e[01;37m%}%m%{\e[00;37m%}} $%{\e[m%} ")ですね。特に変哲ありません。
227名無しさん@お腹いっぱい。
2013/09/05(木) 14:32:55.63 bashのときは!番号でhistoryの番号実行しようとすると,コマンドが表示されるまでで止まってもう一回エンターをおして実行になってたんですが,
zshに乗り換えたら!番号でエンターをおしたらコマンド実行まで行ってしまいます.
コマンド表示までで止めるのはどうすればよいでしょうか.
zshに乗り換えたら!番号でエンターをおしたらコマンド実行まで行ってしまいます.
コマンド表示までで止めるのはどうすればよいでしょうか.
2013/09/05(木) 15:17:29.49
tab
基本的にzshはtabで色々対応できる。補完とかその展開とか。
基本的にzshはtabで色々対応できる。補完とかその展開とか。
229名無しさん@お腹いっぱい。
2013/09/05(木) 23:55:00.57 >>228
おお!あざーっす
おお!あざーっす
2013/09/09(月) 15:24:16.53
>227
わかんない時はとりあえず tab 押すだろ
わかんない時はとりあえず tab 押すだろ
231名無しさん@お腹いっぱい。
2013/09/11(水) 18:16:45.31 ここで聞くべきかTeXスレで聞くべきか迷ったんだけど,
vim-latexで書いてるときに\llでコンパイルしますよね.
bashだと\llでコンパイルし終わると自動的にvimの画面に戻るんですが,zshだとコンパイル終わってもvimにもどらずctrl cを押さないとvimにもどりません.
どうしたらコンパイル終わって自動でvimに戻るかな
vim-latexで書いてるときに\llでコンパイルしますよね.
bashだと\llでコンパイルし終わると自動的にvimの画面に戻るんですが,zshだとコンパイル終わってもvimにもどらずctrl cを押さないとvimにもどりません.
どうしたらコンパイル終わって自動でvimに戻るかな
2013/09/22(日) 01:37:22.11
tex というか vim スレのような気が…
2013/09/22(日) 23:52:13.36
2013/09/23(月) 01:34:51.08
え?いまなんて?
235名無しさん@お腹いっぱい。
2013/10/09(水) 09:42:12.12 autoload -U compinit
compinit
が.zshrcに書いてあると読み込みの段階で固まっちゃうんですがこれはなぜでしょうか.
この二行をコメントアウトすれば普通にとおります.
compinit
が.zshrcに書いてあると読み込みの段階で固まっちゃうんですがこれはなぜでしょうか.
この二行をコメントアウトすれば普通にとおります.
2013/10/09(水) 21:02:02.59
通常エラー出力と通常出力、それぞれを
別のパイプに通すことは可能?
別のパイプに通すことは可能?
2013/10/09(水) 22:14:43.31
プロセス置換を使った方がてっとりばやい
> >(command1) 2> >(command2)
> >(command1) 2> >(command2)
2013/10/20(日) 15:31:01.51
なるほどその手があった
2013/11/28(木) 02:55:17.38
(( )) の中で浮動小数を代入した変数って、デフォルトは typeset -F なんですか?
$ unset a
$ (( a = 1.23456789e-8 ))
$ typeset -p a
typeset -F a=0.0000000123
$ unset a
$ typeset -E a
$ (( a = 1.23456789e-8 ))
$ typeset -p a
typeset -E a=1.234567890e-08
typeset -E をデフォにしたいのですが、できますか?
$ unset a
$ (( a = 1.23456789e-8 ))
$ typeset -p a
typeset -F a=0.0000000123
$ unset a
$ typeset -E a
$ (( a = 1.23456789e-8 ))
$ typeset -p a
typeset -E a=1.234567890e-08
typeset -E をデフォにしたいのですが、できますか?
2013/12/18(水) 16:15:48.61
zshのヒストリーが1万件になって削除されるようになってしまった。
みんなはzshのヒストリーの上限何万にしてる?(何百万?)
みんなはzshのヒストリーの上限何万にしてる?(何百万?)
2013/12/18(水) 16:25:32.61
2013/12/18(水) 22:12:56.77
2013/12/19(木) 00:15:25.62
確かに。思えば1年ぐらいで埋まってしまった。
2013/12/19(木) 14:07:09.18
そんなに保存しておくとエロいURLをwgetした履歴とかが
いつまでも残っちゃうじゃん
いつまでも残っちゃうじゃん
2013/12/19(木) 14:42:16.92
wget "URL"
形式で打ち込んでいるならば
cat <<EOF >>.~/.zshrc
setopt histignorespace
alias cat=' wget' #空白を前方に差し込んで、ヒストリーログの書き込みをさせない
形式で打ち込んでいるならば
cat <<EOF >>.~/.zshrc
setopt histignorespace
alias cat=' wget' #空白を前方に差し込んで、ヒストリーログの書き込みをさせない
2013/12/19(木) 14:44:21.18
ワロタ。EOF忘れてるw
2013/12/19(木) 15:09:28.94
>>244
別にいいじゃん。
別にいいじゃん。
2013/12/19(木) 21:58:39.78
ちょっとhistory絡みの質問していいですか?
zshの状態から「bash」って打ってbashに切り替えると、何故かzshの履歴が
変な風に見えてしまうんですが、何でこうなるんですかね?
こんな感じ↓
$ echo "current shell is zsh"
$ bash
$ echo "current shell is bash"
$ hisotry
501231 : 1387372257:0;echo "current shell is zsh"
501232 : 1387372282:0;bash
501233 echo "current shell is bash"
もちろんzshとbashのhistoryはそれぞれ.zhistory、.bash_historyと分けています。
zshの状態から「bash」って打ってbashに切り替えると、何故かzshの履歴が
変な風に見えてしまうんですが、何でこうなるんですかね?
こんな感じ↓
$ echo "current shell is zsh"
$ bash
$ echo "current shell is bash"
$ hisotry
501231 : 1387372257:0;echo "current shell is zsh"
501232 : 1387372282:0;bash
501233 echo "current shell is bash"
もちろんzshとbashのhistoryはそれぞれ.zhistory、.bash_historyと分けています。
2013/12/21(土) 14:09:53.66
2013/12/21(土) 15:39:42.60
setopt hist_ignore_all_dups hist_save_nodups
しても10kとかいくもん?
しても10kとかいくもん?
2013/12/21(土) 16:39:53.69
昔は HIST_IGNORE_ALL_DUPS や HIST_IGNORE_DUPS を有効にしていたけど
いつ何をやったかを後で調べたいときには、ほぼ正味の履歴を残しておく方が都合良いと気付いて無効にした
HIST_FIND_NO_DUPS を有効にしとけば、使い回しのときにも欝陶しくないし
いつ何をやったかを後で調べたいときには、ほぼ正味の履歴を残しておく方が都合良いと気付いて無効にした
HIST_FIND_NO_DUPS を有効にしとけば、使い回しのときにも欝陶しくないし
2013/12/21(土) 20:00:41.34
言われてみると確かに
しかし自分の履歴ってのはなんか気恥ずかしいものがあるな
数年前のトラブってる業務やったときの履歴を見て遠い目をしたりw
しかし自分の履歴ってのはなんか気恥ずかしいものがあるな
数年前のトラブってる業務やったときの履歴を見て遠い目をしたりw
2013/12/21(土) 21:34:12.10
2013/12/23(月) 00:46:32.95
履歴のインクリメンタルサーチって、複数のワードでマッチングすることってできますか?
たとえば、Ctrl-r を history-incremental-search-backward にしてて、履歴が
$ history -4
4283 echo hoge
4284 echo fuga
4285 echo HOGE
4286 echo FUGA
という状態のとき、 echo hoge を取得しようと Ctrl-r e と押すと echo FUGA が出ますが、
そこから e を連打して echo hoge まで辿るのが面倒です。他に何かいい方法ないですか?
今までは history | grep -E "echo.*hoge" みたいにやってましたが、コレジャナイ感が酷くいてw
たとえば、Ctrl-r を history-incremental-search-backward にしてて、履歴が
$ history -4
4283 echo hoge
4284 echo fuga
4285 echo HOGE
4286 echo FUGA
という状態のとき、 echo hoge を取得しようと Ctrl-r e と押すと echo FUGA が出ますが、
そこから e を連打して echo hoge まで辿るのが面倒です。他に何かいい方法ないですか?
今までは history | grep -E "echo.*hoge" みたいにやってましたが、コレジャナイ感が酷くいてw
2013/12/23(月) 05:34:01.74
e 連打というのがよくわからんけど
自分はパターンマッチが使える history-incremental-pattern-search-{backward,forward} を使ってる
自分はパターンマッチが使える history-incremental-pattern-search-{backward,forward} を使ってる
2013/12/23(月) 13:51:38.79
2013/12/23(月) 23:29:00.04
globあると遡ってパターンマッチしまくるからタイポしたときとか重くなるね
そういう意味でもHISTSIZEはでかすぎないほうがいいかも
履歴を古いやつから自動的に分けたりアーカイブしたりする機能がzshにあればいいけど
そんくらい自分で適当に作れってか
そういう意味でもHISTSIZEはでかすぎないほうがいいかも
履歴を古いやつから自動的に分けたりアーカイブしたりする機能がzshにあればいいけど
そんくらい自分で適当に作れってか
2014/01/04(土) 21:20:50.10
zsh-5.0.2 から zsh-5.0.4 に上げたら
appendhistory で $HISTFILE に elapsed times が残るようになってるじゃないか。
よかよか。追加タイミング変わったんだね。実行完了時に。
appendhistory で $HISTFILE に elapsed times が残るようになってるじゃないか。
よかよか。追加タイミング変わったんだね。実行完了時に。
2014/01/10(金) 01:15:22.77
Releases 5.0.3 and 5.0.4 were replaced with 5.0.5 because they contained serious bugs.
ファッ!?
ファッ!?
2014/01/10(金) 02:31:05.48
=(command)で生成される一時ファイルに拡張子って指定できないもんですかね?
2014/01/10(金) 23:29:25.65
2014/01/11(土) 02:38:29.80
あんま盲目的に新バージョンを入れないほうがいいんかな
正規表現処理にバグがあってファイル消えたとかなったら死ぬわw
正規表現処理にバグがあってファイル消えたとかなったら死ぬわw
2014/01/11(土) 03:57:35.24
>>261
rvmのバグ報告でなんかregexp周りが死ぬってのを見た気がする。
rvmのバグ報告でなんかregexp周りが死ぬってのを見た気がする。
2014/01/11(土) 15:15:38.09
4.3.10でこういうバグがあったよ
しかもDebianの前のバージョンのzshがこれだったという…
ttp://www.zsh.org/mla/workers/2010/threads.html#00781
しかもDebianの前のバージョンのzshがこれだったという…
ttp://www.zsh.org/mla/workers/2010/threads.html#00781
265名無しさん@お腹いっぱい。
2014/01/11(土) 18:48:30.19 Debianのstableは、バージョン番号据置きでパッチのバックポートするから要確認。
266名無しさん@お腹いっぱい。
2014/01/11(土) 20:08:23.27 標準エラー出力に色をつけたいのですがどうしたらよいですか?
2014/01/11(土) 20:13:28.22
標準エラー出力に色を付けてるプログラマーorシス管見つけたら
社史編纂室に異動させるわ
社史編纂室に異動させるわ
268社史編纂室に異動がブーム
2014/01/11(土) 20:52:53.94 シェルスクリプト総合 その22
http://toro.2ch.net/test/read.cgi/unix/1383260330/
115+2 :名無しさん@お腹いっぱい。 [↓] :2014/01/11(土) 19:21:56.73
read に -N オプション付けてるプログラマーorシス管見つけたら
社史編纂室に異動させるわ
http://toro.2ch.net/test/read.cgi/unix/1383260330/
115+2 :名無しさん@お腹いっぱい。 [↓] :2014/01/11(土) 19:21:56.73
read に -N オプション付けてるプログラマーorシス管見つけたら
社史編纂室に異動させるわ
2014/01/11(土) 23:44:02.01
僕はcygwinでzshを使ってるだけで、unixなんて見た事も使った事も無いんで
このスレでは大人しくしています
このスレでは大人しくしています
2014/01/11(土) 23:57:49.03
じゃあ黙ってろよ
2014/01/12(日) 09:51:59.25
社史編纂室に異動させられて暇なんだろ
2014/01/14(火) 01:05:32.66
>>265
Debianよく知らんのだけど、それでstable名乗るのってOKなん?
Debianよく知らんのだけど、それでstable名乗るのってOKなん?
2014/01/14(火) 04:14:06.74
2014/01/14(火) 10:00:57.12
>>272
ダメなの?
ダメなの?
2014/01/14(火) 20:49:51.24
>>263
5.0.5でも補完の時にregexpでエラー吐いちゃうんだけど@とあるBSD
5.0.5でも補完の時にregexpでエラー吐いちゃうんだけど@とあるBSD
2014/01/14(火) 20:58:48.07
2014/01/17(金) 21:28:10.41
こんな機能あったら便利なのになぁ、って話はメーリングリストに投げたら
意外にサクッと実装してくれたりすんのかな?経験ある人います?
意外にサクッと実装してくれたりすんのかな?経験ある人います?
2014/01/19(日) 01:13:19.16
zshの起動が異常におそいがこりゃなんだ
2014/01/19(日) 15:51:33.24
>>278
特に感じないけど。どの辺で遅い?
>>277
Release Notesにあった5.0.5の新機能で FORCE_FLOAT って超便利なオプションがあるけど
これメーリスに投げてから1日足らずでレス来てるのな。
サクッとできることはサクッとやってくれそう。
http://www.zsh.org/mla/users/2013/msg00145.html
特に感じないけど。どの辺で遅い?
>>277
Release Notesにあった5.0.5の新機能で FORCE_FLOAT って超便利なオプションがあるけど
これメーリスに投げてから1日足らずでレス来てるのな。
サクッとできることはサクッとやってくれそう。
http://www.zsh.org/mla/users/2013/msg00145.html
2014/01/21(火) 02:46:54.12
FORCE_FLOAT付けたら./configure --<タブ>が変なエラーになる・・・何なのこれ
$ ./configure --
(eval):local:1: not valid in this context: _a_1.1
_describe:102: not an identifier: _a_1.1
$ ./configure --
(eval):local:1: not valid in this context: _a_1.1
_describe:102: not an identifier: _a_1.1
2014/01/23(木) 02:21:05.12
283名無しさん@お腹いっぱい。
2014/01/23(木) 02:25:45.18 autoload -Uz compinit
compinit -u
をコメントアウトするとすぐ起動する.
ホームディレクトリをNFSにしてるからかなぁ?
compinit -u
をコメントアウトするとすぐ起動する.
ホームディレクトリをNFSにしてるからかなぁ?
2014/01/25(土) 23:51:28.86
>>282
http://my.opera.com/ymirlin/blog/2011/02/01/nfs-home-zsh
mkdir /tmp/hoge
chmod 700 /tmp/hoge
ln -s /tmp/hoge/.zcompdump $HOME
autoload -Uz compinit
compinit -u
というのはどうだろう
http://my.opera.com/ymirlin/blog/2011/02/01/nfs-home-zsh
mkdir /tmp/hoge
chmod 700 /tmp/hoge
ln -s /tmp/hoge/.zcompdump $HOME
autoload -Uz compinit
compinit -u
というのはどうだろう
285名無しさん@お腹いっぱい。
2014/01/26(日) 14:23:47.95 sshからログインと同時に指定したシェルスクリプトを実行したいんだが
% ssh user@example "export INC='~/setup.zsh';zsh"
接続先の~/.zshrcには$INCが定義されてるならsource $INCするように書いてる
もっとシンプルに
% ssh user@example "~/setup.zsh"
setup.zsh実行後にzshを終了せず対話型になるみたいなことって出来ませんかね?
% ssh user@example "export INC='~/setup.zsh';zsh"
接続先の~/.zshrcには$INCが定義されてるならsource $INCするように書いてる
もっとシンプルに
% ssh user@example "~/setup.zsh"
setup.zsh実行後にzshを終了せず対話型になるみたいなことって出来ませんかね?
2014/01/26(日) 14:57:40.57
2014/01/26(日) 15:00:01.93
2014/01/26(日) 16:39:40.77
素早い返信ありがとうございます
exec zshだとsetup.zshで定義されるシェル変数や関数などが維持できないようです。。。
.zshrcに依存することにはなるが、.zshrcから適当なフラグを立てたうえでsource $INCすることでできました
% ssh user@example 'cat setup.zsh .zshrc'
#setup.zsh
if [ -z $FLAG ] ;then
export INC=setup.zsh
exec zsh
else
(省略)
fi
#.zshrc
if [ -n $INC ];then
export FLAG=true
source $INC
fi
% ssh -t user@example setup.zsh
exec zshだとsetup.zshで定義されるシェル変数や関数などが維持できないようです。。。
.zshrcに依存することにはなるが、.zshrcから適当なフラグを立てたうえでsource $INCすることでできました
% ssh user@example 'cat setup.zsh .zshrc'
#setup.zsh
if [ -z $FLAG ] ;then
export INC=setup.zsh
exec zsh
else
(省略)
fi
#.zshrc
if [ -n $INC ];then
export FLAG=true
source $INC
fi
% ssh -t user@example setup.zsh
2014/01/27(月) 11:13:04.30
>>288
ああ、シェル変数やらはそうだろうね。
だったらexpect使ったら?
#!/usr/bin/expect
spawn "zsh"
expect "%"{ send "source hoge.zsh\n" }
interact
でやりたいことはできそうだけど
ああ、シェル変数やらはそうだろうね。
だったらexpect使ったら?
#!/usr/bin/expect
spawn "zsh"
expect "%"{ send "source hoge.zsh\n" }
interact
でやりたいことはできそうだけど
2014/01/27(月) 19:46:41.87
291名無しさん@お腹いっぱい。
2014/01/31(金) 18:40:31.722014/01/31(金) 20:53:22.37
>>291
もしかしたら/tmpが0777のマシンと1777のマシンじゃないか?
もしかしたら/tmpが0777のマシンと1777のマシンじゃないか?
2014/01/31(金) 21:57:09.18
なんとなく言ってみるけどselinuxが悪さしてることってない?
294名無しさん@お腹いっぱい。
2014/02/01(土) 00:36:14.06 両方ともmacですわ
2014/02/01(土) 19:20:21.34
そういやmacはデフォルトのログインシェルがzshなんだっけ
296名無しさん@お腹いっぱい。
2014/02/02(日) 01:13:04.98 10.2 まで tcsh
10.3 からいまのところ bash
zsh は5.0.2が入ってるけど、デフォルトログインシェルにはなってない。
10.3 からいまのところ bash
zsh は5.0.2が入ってるけど、デフォルトログインシェルにはなってない。
2014/02/02(日) 18:31:21.31
あ、そうなんだスマソ
デフォルトでインストールされてるってだけか
デフォルトでインストールされてるってだけか
2014/02/10(月) 23:45:43.92
なんかCentOS4.5のzsh-4.2.0が.zshenvを読んでないっぽいんだけどなんで?
まあ管理権限ないから$HOMEにzsh-5.0.5入れたけど……
まあ管理権限ないから$HOMEにzsh-5.0.5入れたけど……
2014/02/11(火) 07:19:07.79
てか4.5とか古いなw
そっちに原因があったりして
そっちに原因があったりして
2014/02/11(火) 10:56:49.31
CentOSの問題をここで聞かれてもな。
2014/02/12(水) 00:50:45.39
研究室の鯖なかなか更新してくれないんだよね。
CentOS固有の問題なのかな?
CentOS固有の問題なのかな?
2014/02/12(水) 01:08:42.94
うん。
2014/02/12(水) 01:19:27.88
そっか。
2014/02/12(水) 04:23:39.09
zsh-4.2.0なんて何年前だろ
とりあえず新しいのを自分でビルドしてユーザ領域に置いてみたら?
とりあえず新しいのを自分でビルドしてユーザ領域に置いてみたら?
2014/02/12(水) 12:07:28.81
もう入れたってさ。
2014/02/12(水) 22:01:25.39
あー書いてたかスマン
ってか話題ないな・・・
ってか話題ないな・・・
2014/02/15(土) 11:39:19.20
話題か。
>>258 の件で $HISTFILE に elapsed times が残るようになったのはいいんだけど、
実行中に別 zsh 起こしてその履歴使ったり history -D したりできなくなってしまった。(当然)
とりあえず放置してるけど。
これでもいいような、そうでもないような。
share_history は前のまま実行前に追加するみたい。(elapsed times が残らない。)
てか share_history って imported lines と local lines 分けてるんだね。
昔は違った気がするけど。
あと import タイミングが行編集終了時。最初、終了前に履歴辿って効いてないのかと思った。
>>258 の件で $HISTFILE に elapsed times が残るようになったのはいいんだけど、
実行中に別 zsh 起こしてその履歴使ったり history -D したりできなくなってしまった。(当然)
とりあえず放置してるけど。
これでもいいような、そうでもないような。
share_history は前のまま実行前に追加するみたい。(elapsed times が残らない。)
てか share_history って imported lines と local lines 分けてるんだね。
昔は違った気がするけど。
あと import タイミングが行編集終了時。最初、終了前に履歴辿って効いてないのかと思った。
2014/03/02(日) 22:23:24.05
zargs -r -- $HOME/.zshfunc/*(N:t) -- autoload
で.zshfunc以下に定義してある関数を全部読みこもうとしたんだけど、
関数内でこいつを呼びだすと動かなくて
ttyで呼びだすと動いてるっぽい。なんでだろう?
で.zshfunc以下に定義してある関数を全部読みこもうとしたんだけど、
関数内でこいつを呼びだすと動かなくて
ttyで呼びだすと動いてるっぽい。なんでだろう?
309名無しさん@お腹いっぱい。
2014/03/06(木) 06:57:36.21 CENTOS6.3でzshを立ち上げると、/bin/lsコマンドが
/bin/ls: fork failed: リソースが一時的に利用できません
といって動いてくれません。bashだと大丈夫。他のコマンドだと大丈夫。zshとlsでなんかもんだいあるんでしょうか?
/bin/ls: fork failed: リソースが一時的に利用できません
といって動いてくれません。bashだと大丈夫。他のコマンドだと大丈夫。zshとlsでなんかもんだいあるんでしょうか?
310名無しさん@お腹いっぱい。
2014/03/06(木) 08:21:18.89 >>309の件、自己解決しました。
.zshrcの中に変なaliasを定義していたのが原因でした。
.zshrcの中に変なaliasを定義していたのが原因でした。
2014/03/08(土) 02:50:06.88
>>308 それ tty でも動いてないんじゃない? あと zargs の意味ない気がするけど、-r のために使っているとか?
2014/03/08(土) 03:00:16.92
>>311
そうそれ。
そうそれ。
2014/03/08(土) 03:05:49.91
あれ、確かにttyでも動いてないっすね。なんで以前は動いたと思ったんだろう。
2014/03/08(土) 18:19:46.44
zargs が subshell内で eval してるっぽいから意味ないんだと思う。
-r が目的なら
() { (( $# )) && autoload $@ } $HOME/.zshfunc/*(N:t)
でいいんじゃないか? setopt次第で "$@" かな。
exit 1 だけどエラーメッセージ出ないからいいよね?
-r が目的なら
() { (( $# )) && autoload $@ } $HOME/.zshfunc/*(N:t)
でいいんじゃないか? setopt次第で "$@" かな。
exit 1 だけどエラーメッセージ出ないからいいよね?
2014/03/09(日) 11:12:18.11
>>314
ほんとだ、()でかこってあった…
> () { (( $# )) && autoload $@ } $HOME/.zshfunc/*(N:t)
forで逃げてましたが使わせていただきます。ありがとうございます。
ほんとだ、()でかこってあった…
> () { (( $# )) && autoload $@ } $HOME/.zshfunc/*(N:t)
forで逃げてましたが使わせていただきます。ありがとうございます。
2014/03/09(日) 22:07:18.67
無名関数に引数を渡せるようになっていたとは知らんかった
317名無しさん@お腹いっぱい。
2014/03/22(土) 19:18:47.39 プロンプトに$LINENOを表示させてみようと思ったら上手く行かなかった、環境変数って読めない感じ?
2014/03/22(土) 19:28:17.45
うまくいかないのがよくわからないけど普通に1とか2が出力されたよ
どっかの設定がおかしいんじゃね
どっかの設定がおかしいんじゃね
319名無しさん@お腹いっぱい。
2014/03/22(土) 19:51:45.22 >>317
${LINENO} じゃ?
${LINENO} じゃ?
2014/03/22(土) 20:41:45.84
>>319 は $LINENO と ${LINENO} が違うものだと思ってるのかよw
2014/03/22(土) 20:47:29.70
2014/03/22(土) 20:54:22.74
${LINENO} とか中途半端な書き方せずに "$LINENO" と書くのがお勧め。
2014/03/22(土) 20:56:22.21
いや、
PS1=$LINENO とかやっても $LINENO の値が動的に変わるわけじゃないって話だろw
PS1=$LINENO とかやっても $LINENO の値が動的に変わるわけじゃないって話だろw
324391
2014/03/22(土) 21:03:44.02 ごめん。一般の変数の展開と勘違いした。
マニュアル読むと LINENO はスクリプトの中で使うだけみたいだな。
プロンプトの行番号の概念がはっきりしないんだけど、これはイメージどおり?
PS1="%h $"
%h, %!, ! だと履歴の番号になるみたい。
マニュアル読むと LINENO はスクリプトの中で使うだけみたいだな。
プロンプトの行番号の概念がはっきりしないんだけど、これはイメージどおり?
PS1="%h $"
%h, %!, ! だと履歴の番号になるみたい。
2014/03/22(土) 21:29:22.55
>>324
まあプロンプトにLINENOがあっても?だけど普通にログインシェルでも立ち上げてからの行数でるよ
まあプロンプトにLINENOがあっても?だけど普通にログインシェルでも立ち上げてからの行数でるよ
2014/03/29(土) 14:28:58.64
cd -[TAB] で表示されるディレクトリスタックをいじることってできますか?
m〜n番目のエントリを削除、とかがしたいです
dirsコマンドにはそれらしい方法はなさそうでした
m〜n番目のエントリを削除、とかがしたいです
dirsコマンドにはそれらしい方法はなさそうでした
327名無しさん@お腹いっぱい。
2014/04/02(水) 01:47:32.48 現在の設定のままroot権限持つことって可能ですか?
$ZDOTDIRを〜〜、ではなく現在のシェルで設定した変数を保持したままで、ということです。
sudoすれば良いだろ、というのはなしでお願いします
$ZDOTDIRを〜〜、ではなく現在のシェルで設定した変数を保持したままで、ということです。
sudoすれば良いだろ、というのはなしでお願いします
328名無しさん@お腹いっぱい。
2014/04/02(水) 02:29:34.48 su -m は?
2014/04/06(日) 19:36:26.45
いつの間にかipの補完ができなくなった
ssh hoge@XXXのXXXが数字だと補完してくれない
みんなできてる?
ssh hoge@XXXのXXXが数字だと補完してくれない
みんなできてる?
2014/04/07(月) 23:00:57.97
IP補完なんてできるのか
て、試したらできなかったわ
て、試したらできなかったわ
2014/04/07(月) 23:46:43.44
>>329
できてるで
% ssh foo@10.5.5.<tab>
10.5.5.1 10.5.5.2 10.5.5.3 10.5.5.4
% zsh --version
zsh 5.0.5 (x86_64-apple-darwin13.0.0)
_ssh は zsh 付属のやつっぽい
できてるで
% ssh foo@10.5.5.<tab>
10.5.5.1 10.5.5.2 10.5.5.3 10.5.5.4
% zsh --version
zsh 5.0.5 (x86_64-apple-darwin13.0.0)
_ssh は zsh 付属のやつっぽい
332名無しさん@お腹いっぱい。
2014/04/07(月) 23:46:48.56 /etc/hosts に書いてあってもだめ?
2014/04/08(火) 01:23:23.75
2014/04/08(火) 17:27:02.17
function print_known_hosts (){
test -f /etc/hosts && sed -e 's/#.*//' /etc/hosts
test -f $HOME/.ssh/known_hosts && tr ',' ' ' <$HOME/.ssh/known_hosts | cut -d ' ' -f1 | sed -e '/^|1|/d;s/^\[\(.*\)\]:[0-9][0-9]*$/\1/'
test -f ~/.host.completion && cat ~/.host.completion
}
_cache_hosts=($(print_known_hosts | tr '[:blank:]' "\n" | sort -u))
ってやって.ssh/known_hostsに書いてあるやつは補完できるようにしてるわ
test -f /etc/hosts && sed -e 's/#.*//' /etc/hosts
test -f $HOME/.ssh/known_hosts && tr ',' ' ' <$HOME/.ssh/known_hosts | cut -d ' ' -f1 | sed -e '/^|1|/d;s/^\[\(.*\)\]:[0-9][0-9]*$/\1/'
test -f ~/.host.completion && cat ~/.host.completion
}
_cache_hosts=($(print_known_hosts | tr '[:blank:]' "\n" | sort -u))
ってやって.ssh/known_hostsに書いてあるやつは補完できるようにしてるわ
2014/04/08(火) 17:27:43.67
あ、上記はもちろん.ssh/known_hostsがハッシュされてると動きませんあしからず
2014/04/24(木) 02:08:29.31
zparseoptsを使ってオプション引数だけの入った配列を得る方法ってないですかね?
オプション自体を手動で取り除くしかないですか?
オプション自体を手動で取り除くしかないですか?
2014/05/24(土) 18:36:48.95
alias -g G='| grep'
alias -g H='| head'
alias -g T='| tail'
などのグローバルエイリアスをしてる人多いと思いますが、
特定のコマンドの後ろに付ける場合は無視するようにはできませんか?
alias -g H='| head'
alias -g T='| tail'
などのグローバルエイリアスをしてる人多いと思いますが、
特定のコマンドの後ろに付ける場合は無視するようにはできませんか?
2014/06/27(金) 11:50:13.57
普段lsに--group-directories-firstオプションをつけてるんですが
zshのglobをこれと同じソート順にしたいです
どうすればいいですかね
zshのglobをこれと同じソート順にしたいです
どうすればいいですかね
2014/07/02(水) 02:55:08.08
PROMPTの%(?,,)の構文の挙動がおかしくないですか?
試しに下記のようなコマンドを入力すると逆の結果を返しており、psvar[2]を見て判断しているように思えます。
precmd(){}
psvar=( '0' '1' )
PROMPT='%? %1(?,success,error) %# '
sh -c 'exit 1'
:
これはバグでしょうか。それとも僕が何か勘違いしているのでしょうか
zsh 5.0.5 (x86_64-unknown-linux-gnu)
試しに下記のようなコマンドを入力すると逆の結果を返しており、psvar[2]を見て判断しているように思えます。
precmd(){}
psvar=( '0' '1' )
PROMPT='%? %1(?,success,error) %# '
sh -c 'exit 1'
:
これはバグでしょうか。それとも僕が何か勘違いしているのでしょうか
zsh 5.0.5 (x86_64-unknown-linux-gnu)
2014/07/03(木) 12:05:59.89
>337
使ってる人いるんですか,global alias
alias 設定した文字(列)を引数に書いた瞬間に死亡する,
という挙動のリスクが大きくて,
たいしたことない利便性ではリスクに見合わない印象
使ってる人いるんですか,global alias
alias 設定した文字(列)を引数に書いた瞬間に死亡する,
という挙動のリスクが大きくて,
たいしたことない利便性ではリスクに見合わない印象
341337
2014/07/03(木) 21:58:27.422014/07/03(木) 22:54:56.85
たった6文字ぐらい手で打てよ
お前今にとんでもないトラブル起きるぞ
お前今にとんでもないトラブル起きるぞ
2014/07/04(金) 06:34:45.12
アンタ死ぬわよ
344名無しさん@お腹いっぱい。
2014/07/06(日) 15:43:10.17 % LD_LIBRARY_PATH=
だとファイルリストが補完できるかと思うんですが、同じことを
% env LD_LIBRARY_PATH=
でもできるようにするにはどんな設定すればいいですかね?
tab以外のキーに _complete_files をバインドして補完しても
complete-files: no matches found: LD_LIBRARY_PATH=*
とかなってしまいます。。。
だとファイルリストが補完できるかと思うんですが、同じことを
% env LD_LIBRARY_PATH=
でもできるようにするにはどんな設定すればいいですかね?
tab以外のキーに _complete_files をバインドして補完しても
complete-files: no matches found: LD_LIBRARY_PATH=*
とかなってしまいます。。。
2014/07/09(水) 07:30:40.92
編集子について質問させてください
fullpathをチルダ付きpathに変換したいのですがうまくいきません
$ echo '/Users/xxx/doc/aaa.txt' | read fn; echo ${fn:s/$HOME/~/}
ご教示お願い致しますm(_ _)m
fullpathをチルダ付きpathに変換したいのですがうまくいきません
$ echo '/Users/xxx/doc/aaa.txt' | read fn; echo ${fn:s/$HOME/~/}
ご教示お願い致しますm(_ _)m
2014/07/10(木) 06:37:32.63
2014/07/13(日) 18:41:43.93
補完絡みで質問です。
パッケージインストール直後や、~/bin等にスクリプト入れた直後だと補完に候補が出てこない(source .zshrcすればok)。
bashだと、直ぐ補完に反映されてるので何かオプションがありそうですが教え下さい。
パッケージインストール直後や、~/bin等にスクリプト入れた直後だと補完に候補が出てこない(source .zshrcすればok)。
bashだと、直ぐ補完に反映されてるので何かオプションがありそうですが教え下さい。
2014/07/13(日) 18:47:27.56
>>347
rehash
rehash
2014/07/13(日) 21:09:31.42
2014/07/13(日) 23:00:30.29
空エンターでrehashするようにしてる
2014/07/14(月) 01:04:35.45
そんなコマンドあったのか、今までexec zshして丸ごと入れ替えてた
2014/07/14(月) 03:56:04.04
補完に反映なら
zstyle ':completion:*' rehash 1
か
zstyle ':completion:*:commands' rehash 1
に絞ってもいいかもしれんが
zstyle ':completion:*' rehash 1
か
zstyle ':completion:*:commands' rehash 1
に絞ってもいいかもしれんが
2014/07/14(月) 19:36:07.05
>>352
完璧っす、有難い。
完璧っす、有難い。
2014/07/14(月) 21:56:39.50
なんでそんなにしょっちゅうrehashが必要なんだろ。
2014/07/18(金) 18:37:43.55
gitで管理してるディレクトリの時だけ、
プロンプトにmasterとかサブブランチの情報が欲しい
ググった奴コピペしたのは管理してないところでmasterになってて邪魔だった
プロンプトにmasterとかサブブランチの情報が欲しい
ググった奴コピペしたのは管理してないところでmasterになってて邪魔だった
2014/07/19(土) 01:11:13.77
もうちょっとググれ
2014/07/29(火) 03:21:40.66
管理外でmasterって出るってgitの出力使ってないじゃん
どこから出力得てるんだ
どこから出力得てるんだ
2014/08/01(金) 17:29:13.41
a=(1 2); b=(3 4 5); foo $a $b
みたいな感じで foo にリストを引数として渡す場合には foo はどう書けば良かろうか?
あ、a や b の要素数は可変で。
a と b を繋げたリストでよければ foo の中で c=($*) すればいいっぽいけど、別々に欲しい。
あれ local c=($*) したらエラーになるのはなんでだ?
みたいな感じで foo にリストを引数として渡す場合には foo はどう書けば良かろうか?
あ、a や b の要素数は可変で。
a と b を繋げたリストでよければ foo の中で c=($*) すればいいっぽいけど、別々に欲しい。
あれ local c=($*) したらエラーになるのはなんでだ?
2014/08/01(金) 22:13:56.69
変数名を渡して関数の中でevalする
2014/08/02(土) 05:21:24.46
>>358
自分も昔ハマったことがあるが、local では配列の宣言と同時には代入ができないみたい
359 が言うように変数名を渡す方法が最初に思い付くけどもっと良い方法があるのかな?
% a=(1 2); b=(3 4 5)
% foo() {local A B; A=(${(P)1}); B=(${(P)2}); echo "$1[2] -> $A[2], $2[2] -> $B[2]"}
% foo a b
a[2] -> 2, b[2] -> 4
自分も昔ハマったことがあるが、local では配列の宣言と同時には代入ができないみたい
359 が言うように変数名を渡す方法が最初に思い付くけどもっと良い方法があるのかな?
% a=(1 2); b=(3 4 5)
% foo() {local A B; A=(${(P)1}); B=(${(P)2}); echo "$1[2] -> $A[2], $2[2] -> $B[2]"}
% foo a b
a[2] -> 2, b[2] -> 4
2014/08/08(金) 16:09:44.11
なるほど、名前自体を見て処理すれば良いのか、勉強になりました。
ちなみに bash だと local で宣言と同時に代入ができるみたい。なぜだ。
ちなみに bash だと local で宣言と同時に代入ができるみたい。なぜだ。
2014/09/18(木) 03:16:09.91
{
for i in {1..10..2}
で1,3,5,・・・,9と { } 増分
for i in {1..10..2}
で1,3,5,・・・,9と { } 増分
2014/09/18(木) 06:00:27.66
あれ、途中で変なふうに書き込んでしまいました。すいません
{1..9..2}で、1,3,5,・・というふうに増分2で展開されますが、1,2,4,8,・・・というふうに
累乗的に増えていくようなものを表す方法ってありますか?
{1..9**2}みたいな感じで書けたら便利なんですが・・・さすがに無理ですか?
{1..9..2}で、1,3,5,・・というふうに増分2で展開されますが、1,2,4,8,・・・というふうに
累乗的に増えていくようなものを表す方法ってありますか?
{1..9**2}みたいな感じで書けたら便利なんですが・・・さすがに無理ですか?
2014/09/18(木) 14:14:34.28
ない。forで使うならiを指数としてループの中で計算すればいいじゃん。
365363
2014/09/18(木) 21:33:59.91 やはりさすがにないですか。ありがとです
いずれはインクリメントを自由に設定できるようになることを期待
zshなら・・・zshならきっと
いずれはインクリメントを自由に設定できるようになることを期待
zshなら・・・zshならきっと
2014/09/18(木) 23:09:51.96
普通のプログラミング言語でもできなくね?と思ったが
リスト内包表記があるのならできるか・・・
リスト内包表記があるのならできるか・・・
2014/09/29(月) 00:55:12.75
Bashで使えてたcocot がzshにした途端使えなくなった。なぜ?
2014/10/02(木) 01:20:45.75
bashが脆弱性で大変なことになってるけどzshは大丈夫だよね?
2014/10/02(木) 04:50:39.63
zshは↓で固まるけど、これで攻撃できる?
echo hoge >file1 >file2 >/dev/stdout
echo hoge >file1 >file2 >/dev/stdout
2014/10/02(木) 07:26:53.32
固めてどうするの?
そもそも、任意のコードが実行できるなら攻撃も糞もやりたい放題じゃん
そもそも、任意のコードが実行できるなら攻撃も糞もやりたい放題じゃん
371名無しさん@お腹いっぱい。
2014/10/06(月) 17:36:13.45 zshを使ってきた君たちへ
君たちが悪いわけじゃないんだよ
君たちが覚えたzshの将来が無かっただけ
当時の社会が悪かっただけ
君たち一人ひとりが悪いわけじゃないんだよ
だから自分を責めないで
社会と向き合ってください
そうすればきっと気が付くはず
君たちのzshの知識が無用なのだということに
君たちの存在自体が社会の足枷だということに
君たちが悪いわけじゃないんだよ
君たちが覚えたzshの将来が無かっただけ
当時の社会が悪かっただけ
君たち一人ひとりが悪いわけじゃないんだよ
だから自分を責めないで
社会と向き合ってください
そうすればきっと気が付くはず
君たちのzshの知識が無用なのだということに
君たちの存在自体が社会の足枷だということに
2014/10/06(月) 18:18:19.07
元ネタは冷凍ワッフルかw
2014/10/11(土) 06:37:55.90
数値演算用の関数として
function calc()
{
echo $(( $* ))
}
というのを作って使ってるんですが、 ( ) が入れ込んでたりすると zsh: bad pattern: と出てしまいます
引数全体を""で括ればいい話なんですが、そういうことやらずに引数の文字列をそのまま関数に渡すことってできないでしょうか?
function calc()
{
echo $(( $* ))
}
というのを作って使ってるんですが、 ( ) が入れ込んでたりすると zsh: bad pattern: と出てしまいます
引数全体を""で括ればいい話なんですが、そういうことやらずに引数の文字列をそのまま関数に渡すことってできないでしょうか?
2014/10/11(土) 13:02:05.09
2014/10/24(金) 20:16:01.24
https://github.com/Aso23/zsh_virsh_autocompletion/blob/master/_virsh
をfpathに配置して
autoload -U compinit
compinit
ってやるとvirshコマンドで補完が効くんですが
compinitをcompinit -Cにすると補完が効かなくなってしまいます
どうも上記のスクリプトの記述が悪いっぽいのですが
どこを直したらいいか分かる方いませんか?
をfpathに配置して
autoload -U compinit
compinit
ってやるとvirshコマンドで補完が効くんですが
compinitをcompinit -Cにすると補完が効かなくなってしまいます
どうも上記のスクリプトの記述が悪いっぽいのですが
どこを直したらいいか分かる方いませんか?
2014/12/05(金) 15:11:56.76
http://wiki.fdiary.net/zsh/?FAQ%40zsh%A5%B9%A5%EC
にbindkey表記が載っていますが、Ctrl+Shift+xやAlt+Ctrl+Shift+xに割り当てたいときはどう表記すればいいのでしょうか?
にbindkey表記が載っていますが、Ctrl+Shift+xやAlt+Ctrl+Shift+xに割り当てたいときはどう表記すればいいのでしょうか?
2014/12/07(日) 22:20:47.08
asciiコード表を眺めて、文字コードとして存在するのかから考えよう
2015/01/28(水) 03:43:40.20
>>376
遅レス&横レスですけど、できました?
shift って bindkey では設定できないと思ってたけど
キーバインドってなかなか自由自在にできなくてもどかしいですよね
個人的には ctrl-j と enter が区別できなくて等価に LF として扱われるのが辛い
遅レス&横レスですけど、できました?
shift って bindkey では設定できないと思ってたけど
キーバインドってなかなか自由自在にできなくてもどかしいですよね
個人的には ctrl-j と enter が区別できなくて等価に LF として扱われるのが辛い
379378
2015/01/28(水) 03:47:05.69 あ、ctrl-j と enter の件は端末側の話ですかね、すみません
ググると、端末の入力モードをrawにすればキーコードが勝手に解釈されたりせずに
ダイレクトに届くっていうけど、rawなんて使ったことないけどまともに使えるのかな・・・
ググると、端末の入力モードをrawにすればキーコードが勝手に解釈されたりせずに
ダイレクトに届くっていうけど、rawなんて使ったことないけどまともに使えるのかな・・・
2015/02/04(水) 23:38:43.44
2015/02/06(金) 13:05:15.40
書き間違いだろう
2015/02/15(日) 00:11:46.49
じゃあ xterm -xrm '*modifyOtherKeys:2' にしようか
383名無しさん@お腹いっぱい。
2015/03/28(土) 08:29:49.28 hosh
2015/04/26(日) 18:25:52.86
echo $(A="A" && echo $A)みたいな代入文のシンタックスシュガーって存在する?
2015/04/26(日) 22:46:25.40
代入文じゃねえ代入式
2015/05/09(土) 18:34:14.38
意図がわからないけど、こういう話ではなくて?
構文糖ではないけど。
echo ${:-A}
構文糖ではないけど。
echo ${:-A}
387名無しさん@お腹いっぱい。
2015/05/14(木) 20:27:12.02 Cのカンマ演算子みたいな感じかね。
できるかどうかは知らないけれど。
後上記の人の説明の補足をするならば、
例えば以下のようにした場合、変数Bに中身が設定されていなければ中身をA
echo ${B:-A}
として扱うという事であって実際に変数Bが作られるわけでは無いので注意。
数字でよければ echo $((++A))
値1を持つ変数Aが作られる。だから>>363とかは以下のようにもできる。
repeat 10 echo $(( 1 << ++A ))
と、書き終わった後に試してみたら
カンマ演算子が数値なら使えるみたいなのでこんな風にも書けた。
LANG=POSIX echo -e "\0$(( A=141, $A ))"
できるかどうかは知らないけれど。
後上記の人の説明の補足をするならば、
例えば以下のようにした場合、変数Bに中身が設定されていなければ中身をA
echo ${B:-A}
として扱うという事であって実際に変数Bが作られるわけでは無いので注意。
数字でよければ echo $((++A))
値1を持つ変数Aが作られる。だから>>363とかは以下のようにもできる。
repeat 10 echo $(( 1 << ++A ))
と、書き終わった後に試してみたら
カンマ演算子が数値なら使えるみたいなのでこんな風にも書けた。
LANG=POSIX echo -e "\0$(( A=141, $A ))"
388名無しさん@お腹いっぱい。
2015/05/14(木) 21:20:45.50 わるいわるい上記を試したら全然出来なかった。
何度かやってたら偶然できてただけだった。
LANGの設定も意味ないし。
何度かやってたら偶然できてただけだった。
LANGの設定も意味ないし。
389名無しさん@お腹いっぱい。
2015/05/14(木) 21:24:38.73 そっかそっか以下て出来た。
echo -e "\0$(( A=101, A ))"
echo -e "\0$(( A=101, A ))"
390名無しさん@お腹いっぱい。
2015/05/14(木) 21:41:00.34 >>358
力技ではこんなのがある。
a=(a b c)
b=$(printf "%c\0" $a |sed 's#\o0$##') # なんか変数に一度いれないと無理だね。
c ()
{
echo $1
echo $1 |tr '\0' ' '
}
c $b
力技ではこんなのがある。
a=(a b c)
b=$(printf "%c\0" $a |sed 's#\o0$##') # なんか変数に一度いれないと無理だね。
c ()
{
echo $1
echo $1 |tr '\0' ' '
}
c $b
391名無しさん@お腹いっぱい。
2015/05/14(木) 22:08:07.89 hashでもいける。
typeset -A a
a=(A a B b C c)
printf "%s\n" ${(k)a}| while read
do
printf "$REPLY\0%s\0" $a[$REPLY]
done |sed 's#\o0$##' |read b
typeset -A a
a=(A a B b C c)
printf "%s\n" ${(k)a}| while read
do
printf "$REPLY\0%s\0" $a[$REPLY]
done |sed 's#\o0$##' |read b
2015/05/15(金) 21:04:50.03
>>384
;でいいじゃんと言ってみる。
;でいいじゃんと言ってみる。
2015/05/15(金) 21:38:41.50
echo ${A::="A"}
2015/05/15(金) 22:00:08.19
395名無しさん@お腹いっぱい。
2015/05/15(金) 23:33:19.93 書いてみるものだね。プロ達が見たこと無い技を教えてくれた。
そんな簡単にできるんだ。あってると思います。
偉い人はいいよな、こっちなんて直すの面倒からまだそのまま使ってるけれど、
こういうのを実現するのに中間file使って、m4使ってやってたよ。
私の.zshenvは糞コードで埋め尽くされてるな。
まあ糞コードは好きだけどね。それshellで書けますけど的なね。
教えてくれてありがとう。
そんな簡単にできるんだ。あってると思います。
偉い人はいいよな、こっちなんて直すの面倒からまだそのまま使ってるけれど、
こういうのを実現するのに中間file使って、m4使ってやってたよ。
私の.zshenvは糞コードで埋め尽くされてるな。
まあ糞コードは好きだけどね。それshellで書けますけど的なね。
教えてくれてありがとう。
396名無しさん@お腹いっぱい。
2015/05/16(土) 07:35:45.92 なるほどなるほど、psとpjがsplitとjoinのようだ。
typeset -A a
a=( A a B b C 'c c' )
echo ${(k)a} # keyを出力する。
echo ${(kv)a} # keyも値も出力する。
b=${(pj:\0:)a} # 空白を区切りに\0で結合する。
echo $b
echo ${(ps:\0:)b} # \0を区切りに分ける。
b=${(kvpj:\0:)a}
typeset -A c
c=( ${(ps:\0:)b} ) # 値に空白が含まれていても、マクロ的に処理されるわけでなく
# 一つの値として処理される。こういう所が他のshellと違うよね。
typeset -A a
a=( A a B b C 'c c' )
echo ${(k)a} # keyを出力する。
echo ${(kv)a} # keyも値も出力する。
b=${(pj:\0:)a} # 空白を区切りに\0で結合する。
echo $b
echo ${(ps:\0:)b} # \0を区切りに分ける。
b=${(kvpj:\0:)a}
typeset -A c
c=( ${(ps:\0:)b} ) # 値に空白が含まれていても、マクロ的に処理されるわけでなく
# 一つの値として処理される。こういう所が他のshellと違うよね。
397名無しさん@お腹いっぱい。
2015/05/16(土) 07:41:10.37 あーごめんごめんjoinの説明がおかしいね。空白を区切りにしてるわけではなく
他と一緒で値を区切りにしてくれてると思う。
他と一緒で値を区切りにしてくれてると思う。
398名無しさん@お腹いっぱい。
2015/05/16(土) 08:17:20.05 # 変数が空、または値がなければ、1として置き換える。
echo ${a:-1}
echo $a
a=2
echo ${a:-1}
echo $a; unset a
# 上記の判定で、変数宣言がされている場合は置き換えないのが以下。:が無いだけ。
typeset a
echo ${a-1}
a=2
echo ${a:-1}
echo $a; unset a
# 変数が空、または値がなければ、指定された変数aに1を代入する。 *1
echo ${a:=1}
echo $a
echo ${a:=2} # *2
echo $a
# 上記に加え、脚注*2 変数aに値が入っていても、値を上書きして定義するのが以下。
echo ${a::=2}
echo $a; unset a
# 脚注*1 の判定で、変数宣言がされている場合は代入しないのが以下。:が無いだけ。
typeset a
echo ${a=1}
a=2
echo ${a=1}
echo $a; unset a
# 他にもあるけれど勉強はここまでにする。
echo ${a:-1}
echo $a
a=2
echo ${a:-1}
echo $a; unset a
# 上記の判定で、変数宣言がされている場合は置き換えないのが以下。:が無いだけ。
typeset a
echo ${a-1}
a=2
echo ${a:-1}
echo $a; unset a
# 変数が空、または値がなければ、指定された変数aに1を代入する。 *1
echo ${a:=1}
echo $a
echo ${a:=2} # *2
echo $a
# 上記に加え、脚注*2 変数aに値が入っていても、値を上書きして定義するのが以下。
echo ${a::=2}
echo $a; unset a
# 脚注*1 の判定で、変数宣言がされている場合は代入しないのが以下。:が無いだけ。
typeset a
echo ${a=1}
a=2
echo ${a=1}
echo $a; unset a
# 他にもあるけれど勉強はここまでにする。
399名無しさん@お腹いっぱい。
2015/05/16(土) 08:24:55.71 --- 2ch.orig 2015-05-16 08:09:21.000000000 +0900
+++ 2ch.diff 2015-05-16 08:11:22.000000000 +0900
@@ -8,7 +8,7 @@
typeset a
echo ${a-1}
a=2
- echo ${a:-1}
+ echo ${a-1}
echo $a; unset a
+++ 2ch.diff 2015-05-16 08:11:22.000000000 +0900
@@ -8,7 +8,7 @@
typeset a
echo ${a-1}
a=2
- echo ${a:-1}
+ echo ${a-1}
echo $a; unset a
400名無しさん@お腹いっぱい。
2015/05/16(土) 08:25:56.09 時間のズレは仕様です。
401名無しさん@お腹いっぱい。
2015/05/16(土) 09:16:31.98 あとそっか
> b は c "$( ... )" で消せるんじゃない?
確かにその通りでした。
後言葉が変でまだ知らない人達に、混乱を招いてしまうかも。
変数が空 false
変数が無い true
変数宣言 false
変数定義 true
> b は c "$( ... )" で消せるんじゃない?
確かにその通りでした。
後言葉が変でまだ知らない人達に、混乱を招いてしまうかも。
変数が空 false
変数が無い true
変数宣言 false
変数定義 true
402名無しさん@お腹いっぱい。
2015/05/16(土) 09:22:11.77 しかし"$()"の動作が思ってるより不思議だ。いつか勉強しとこう。
2015/05/16(土) 16:35:35.13
ps:\0: は 0 でいいけど、逆(pj:\0:)がないんだよね。f F と違って。
うーん、この非対称性。
うーん、この非対称性。
2015/05/19(火) 20:23:42.65
setopt hist_ignore_space
alias fg=' fg'
しててもCtrl-pを押したときはfgが出てきてしまうのですが、
出てこないようにするにはどうすればいいでしょうか?
alias fg=' fg'
しててもCtrl-pを押したときはfgが出てきてしまうのですが、
出てこないようにするにはどうすればいいでしょうか?
2015/05/21(木) 19:51:22.09
直後も出ないようにってこと?
2015/05/23(土) 22:06:31.50
直後も出ないのが希望です
407名無しさん@お腹いっぱい。
2015/05/24(日) 17:35:41.65 根本的な解決ではないが、新しい機能をkeyへ割り当てる事で要求はこなせる。
ここではalternateとp keyの組み合わせに、新しい機能を割り当てようと思う。
これは設定によってpの先頭に^[をつけるとかは変わる部分だが、
大体その設定になっているだろうと思う。
履歴をさかのぼるのが^Pだとしたら、
bindkey -s '^[p' '^P^P'
見ての通り二回分履歴をさかのぼっているだけになる。
ちなみに^P^Pの後に\rを書けば即座に実行する事となる。
当然これは危険である。
cd hoge
rm *
cd
ここで実行しまうと再帰的にショックを受ける事になる。
試したいのであれば、
bindkey -s '^[p' 'pwd\r'
などとすると良いでしょう。
ここではalternateとp keyの組み合わせに、新しい機能を割り当てようと思う。
これは設定によってpの先頭に^[をつけるとかは変わる部分だが、
大体その設定になっているだろうと思う。
履歴をさかのぼるのが^Pだとしたら、
bindkey -s '^[p' '^P^P'
見ての通り二回分履歴をさかのぼっているだけになる。
ちなみに^P^Pの後に\rを書けば即座に実行する事となる。
当然これは危険である。
cd hoge
rm *
cd
ここで実行しまうと再帰的にショックを受ける事になる。
試したいのであれば、
bindkey -s '^[p' 'pwd\r'
などとすると良いでしょう。
408名無しさん@お腹いっぱい。
2015/05/24(日) 22:40:53.58 ん、以下をfileに書いて実行すると動くのは理解できるのだけれど、
一番最後の行の\を一つ無くして「eval echo \$$a[B][2]」とすると
fileに書いて実行した時は動かないけれど、promptから打っていった場合動いてしまう。
typeset -A a
a=(B b)
eval $a[B]+=\( c d \)
eval echo \$$a[B]\[2]
一番最後の行の\を一つ無くして「eval echo \$$a[B][2]」とすると
fileに書いて実行した時は動かないけれど、promptから打っていった場合動いてしまう。
typeset -A a
a=(B b)
eval $a[B]+=\( c d \)
eval echo \$$a[B]\[2]
409名無しさん@お腹いっぱい。
2015/05/25(月) 00:10:55.57 なるほど、そもそも以下をfileから実行した場合とpromptから
打ち込んだ時の挙動が違ったからか。
a=(abc)
echo a[1][1]
打ち込んだ時の挙動が違ったからか。
a=(abc)
echo a[1][1]
410名無しさん@お腹いっぱい。
2015/05/25(月) 00:11:47.31 $を書くのを忘れてた。
411名無しさん@お腹いっぱい。
2015/05/25(月) 05:02:29.03 scriptからだとこうしないと表示できない。
echo \[1]
echo '[2]'
echo "[3]"
promptからだと大丈夫、さらに1だけ表示が違う。
echo [1]
echo [2]
echo [3]
echo \[1]
echo '[2]'
echo "[3]"
promptからだと大丈夫、さらに1だけ表示が違う。
echo [1]
echo [2]
echo [3]
2015/05/27(水) 23:33:40.25
setopt noglob とかしてんじゃないの
413名無しさん@お腹いっぱい。
2015/05/28(木) 00:04:41.47 >>412
ありがとうございます。noglob設定したら確かに直りました、
確認した所1ってfileが転がってました。
しかしよくすぐ気付くものだと感心しますな、最初の配列はきっと特別なんだろうな、
何かしでかしてんだろうなと覚書してまたわ。
ありがとうございます。noglob設定したら確かに直りました、
確認した所1ってfileが転がってました。
しかしよくすぐ気付くものだと感心しますな、最初の配列はきっと特別なんだろうな、
何かしでかしてんだろうなと覚書してまたわ。
414名無しさん@お腹いっぱい。
2015/05/28(木) 00:21:08.64 そっか、そもそもglobというのが頭の中からすっぽり消えてた。
恥ずかしながら。出直してきます。
恥ずかしながら。出直してきます。
2015/06/07(日) 09:29:46.03
zsh-5.0.8のprintfで-フラッグが効かないんだけど、他にもなる人いる?
こんな感じ。
$ builtin printf '%-20s' 'hoge'
hoge
$ command printf '%-20' 'hoge'
hoge
こんな感じ。
$ builtin printf '%-20s' 'hoge'
hoge
$ command printf '%-20' 'hoge'
hoge
2015/06/07(日) 16:44:20.74
zsh 5.0.7 (amd64-portbld-freebsd8.4) でもおなじ
2015/06/07(日) 17:33:24.91
2015/06/07(日) 17:45:27.15
やっぱり5.0.7だと大丈夫っぽい。
パッケージ作成時の設定も変わってないみたいなのになんでだろう。
$ zsh --version
zsh 5.0.7 (x86_64-unknown-linux-gnu)
$ zsh -c 'builtin printf "%-20s" "hoge"'
hoge
$ zsh -c 'command printf "%-20s" "hoge"'
hoge
とりあえずは5.0.7で様子見することにします。
パッケージ作成時の設定も変わってないみたいなのになんでだろう。
$ zsh --version
zsh 5.0.7 (x86_64-unknown-linux-gnu)
$ zsh -c 'builtin printf "%-20s" "hoge"'
hoge
$ zsh -c 'command printf "%-20s" "hoge"'
hoge
とりあえずは5.0.7で様子見することにします。
419416
2015/06/07(日) 19:53:10.73 ごめん、ちゃんと読んでなかった。うちでも、5.0.7だと正常(左詰めされる)でした。
zsh 5.0.8 (amd64-portbld-freebsd8.4) だと右詰になります。
zsh 5.0.8 (amd64-portbld-freebsd8.4) だと右詰になります。
2015/06/07(日) 20:46:57.13
>>419
どうもです。となるとzshのバグですかね。
どなたかzsh-usersに報告されてました。
http://www.zsh.org/mla/users/2015/msg00609.html
というわけで、修正が来るまで?待つことにします。
お騒がせしました。
どうもです。となるとzshのバグですかね。
どなたかzsh-usersに報告されてました。
http://www.zsh.org/mla/users/2015/msg00609.html
というわけで、修正が来るまで?待つことにします。
お騒がせしました。
2015/07/11(土) 02:35:34.51
select ループで選択候補にナンバリングされるけれども、この表示方法は変えられないのかな
桁の変わり目に表示がずれるのがどうしても気になる
ファイル選択に select を使うのもあまり便利とは言えないけど…
こういうときは皆どうしてるのかな
桁の変わり目に表示がずれるのがどうしても気になる
ファイル選択に select を使うのもあまり便利とは言えないけど…
こういうときは皆どうしてるのかな
2015/08/06(木) 12:04:34.75
teeみたいなことをやるリダイレクトで
ls > /tmp/ls.txt > /dev/sdtin
ってできるけど、なぜ stdout じゃなくて stdin に流すのでしょうか?
なんとなく stdout に流したくなるのですが
ls > /tmp/ls.txt > /dev/sdtin
ってできるけど、なぜ stdout じゃなくて stdin に流すのでしょうか?
なんとなく stdout に流したくなるのですが
2015/08/06(木) 18:57:00.41
/dev/stdoutに すると端末に表示されずに、/tmp/ls.txt にもう一度書きこまれるのでは?
端末に結びつけられていれば /dev/stdin でも /dev/stderr でもいいが
どうせスペシャルデバイスを使うのなら /dev/tty の方がわかりやすいかもね
端末に結びつけられていれば /dev/stdin でも /dev/stderr でもいいが
どうせスペシャルデバイスを使うのなら /dev/tty の方がわかりやすいかもね
424名無しさん@お腹いっぱい。
2015/08/08(土) 09:23:44.01 zsh使うくらいなら最初からbashだけ使ってた方がいい。
将来、なんかの拍子にbashの仕事が入ってくるかもしれない。
その時にbash使ってましたアピールは大きい。
zsh使ってましたとか何のアピールにもならない。
もう一度言う、たとえ趣味でもbashを使え。
将来、なんかの拍子にbashの仕事が入ってくるかもしれない。
その時にbash使ってましたアピールは大きい。
zsh使ってましたとか何のアピールにもならない。
もう一度言う、たとえ趣味でもbashを使え。
2015/08/09(日) 12:30:00.64
>>422
うちのzsh 5.0.8ではls.txtは作られても画面には何も表示されなかったんだが、オプションか何か?
うちのzsh 5.0.8ではls.txtは作られても画面には何も表示されなかったんだが、オプションか何か?
2015/08/09(日) 13:48:35.32
>>424
マゾなの?
マゾなの?
2015/08/09(日) 21:29:45.09
いえコピペです
2015/08/09(日) 23:01:50.40
>>425
multios
multios
2015/08/10(月) 20:02:26.48
>>428 thx
2015/08/28(金) 01:03:10.36
firewalldの補完ファイルどっかに落ちてない?
2015/08/28(金) 19:37:38.48
2015/09/01(火) 23:45:26.91
433名無しさん@お腹いっぱい。
2015/11/10(火) 14:23:27.38 hosh
2015/11/28(土) 12:34:47.43
hash
2015/11/29(日) 23:12:37.76
初心者で申し訳ないが#や$から左のホスト名とかユーザー名、ディレクトリはどこらへんいじれば変えられる?
2015/11/30(月) 00:44:08.44
2015/11/30(月) 01:05:55.56
vim .zshrcすると
operation not permittedって出ます
operation not permittedって出ます
2015/11/30(月) 12:31:44.73
.の後にスペースを入れちゃ駄目だよ
2015/11/30(月) 20:22:32.07
.の後にスペースを入れたように見えるけど実際には.を使ってたりする
2015/12/01(火) 10:07:16.72
ホントだw 気付かんかった
2015/12/01(火) 14:39:08.07
ネタだろ
2015/12/01(火) 19:18:38.09
じゃあ俺、mkdir .zshrc して帰るから(鬼畜)
2015/12/02(水) 01:15:42.82
じゃ俺はそれをrm -rf . zshrcで消しとくね
2015/12/02(水) 01:50:09.44
2015/12/02(水) 09:45:55.28
知ってて言ってんでしょ
2015/12/02(水) 13:46:26.23
知ってて知らん言うのは犯罪やぞ
2015/12/06(日) 19:33:09.46
zsh 5.2
2015/12/18(金) 20:00:31.04
(( )) 内の浮動小数変数のデフォルト型をdoubleにする設定ってないですか?
2016/01/08(金) 07:16:05.45
zsh-5.0.8 → zsh-5.1.1(zsh-5.2 も同様) と上げたら、
menu-complete → reverse-menu-complete で
reverse-menu-complete が確定→補完開始するようになった。(バグ?)
zsh-5.0.8 は確定せずに候補選択の逆順移動をする。
zsh-5.0.8 と同じ動きにする方法ってある?
>>448
setopt FORCE_FLOAT
でどうでしょう。
と思ったら浮動小数変数のデフォルト型ですか。
何もしなくても double では?
表示の有効桁数のことですか?
menu-complete → reverse-menu-complete で
reverse-menu-complete が確定→補完開始するようになった。(バグ?)
zsh-5.0.8 は確定せずに候補選択の逆順移動をする。
zsh-5.0.8 と同じ動きにする方法ってある?
>>448
setopt FORCE_FLOAT
でどうでしょう。
と思ったら浮動小数変数のデフォルト型ですか。
何もしなくても double では?
表示の有効桁数のことですか?
450449
2016/01/11(月) 16:38:07.30 compinit するとなるようですね。もっというと
zle -C reverse-menu-complete .reverse-menu-complete _main_complete
でなる。(_main_complete でなくても。)
zsh-5.0.8 でも compinit すると complete-word, menu-complete とかで
新しい補完を開始してしまう。
ので、reverse-menu-complete 以外は前から問題があったのかな?
zle -C 前の reverse-menu-complete や .reverse-menu-complete なら
新しい補完を開始することはない。
が、menu completion 中以外について、
当然 _main_complete は呼ばれないし、なぜか compinit なしの補完もしない。
menu completion 中しか reverse-menu-complete を使ってないので
姑息ながら、とりあえず .reverse-menu-complete で凌ぐ。
zle -C reverse-menu-complete .reverse-menu-complete _main_complete
でなる。(_main_complete でなくても。)
zsh-5.0.8 でも compinit すると complete-word, menu-complete とかで
新しい補完を開始してしまう。
ので、reverse-menu-complete 以外は前から問題があったのかな?
zle -C 前の reverse-menu-complete や .reverse-menu-complete なら
新しい補完を開始することはない。
が、menu completion 中以外について、
当然 _main_complete は呼ばれないし、なぜか compinit なしの補完もしない。
menu completion 中しか reverse-menu-complete を使ってないので
姑息ながら、とりあえず .reverse-menu-complete で凌ぐ。
2016/01/15(金) 16:56:35.55
seq 1 10 | echo `grep 5` `grep 3`
bashだと5が表示されるけど、zshだと完全に固まるね(^Cも^Zも受け付けない)
bashだと5が表示されるけど、zshだと完全に固まるね(^Cも^Zも受け付けない)
2016/01/15(金) 20:13:15.23
5.1.1では^Cで止まる。
2016/01/17(日) 23:54:19.24
5.2 では
% seq 1 10 | echo `grep 5` `grep 3`
grep: (標準入力): 入力/出力エラーです
3<eof> ← 入力
3
となる。けど
% zsh
% seq 1 10 | echo `grep 5` `grep 3`
でなぜか固まるね。
↓ は期待通りかな。
% zsh -c 'seq 1 10 | echo `grep 5` `grep 3`'
5<eof> ← 入力
3<eof> ← 入力
5 3
bash とは多分仕様が違うけど、
bash は POSIX compliant なのかな?
正しく動けば zsh の方が使い易そうだけど。
% seq 1 10 | echo `grep 5` `grep 3`
grep: (標準入力): 入力/出力エラーです
3<eof> ← 入力
3
となる。けど
% zsh
% seq 1 10 | echo `grep 5` `grep 3`
でなぜか固まるね。
↓ は期待通りかな。
% zsh -c 'seq 1 10 | echo `grep 5` `grep 3`'
5<eof> ← 入力
3<eof> ← 入力
5 3
bash とは多分仕様が違うけど、
bash は POSIX compliant なのかな?
正しく動けば zsh の方が使い易そうだけど。
2016/02/14(日) 06:31:08.70
hist_find_no_dupsはどういう意味なんでしょうか?
これを設定していても、Ctrl-pを繰り返し押したとき同じコマンドが何回も出てきます。
これを設定していても、Ctrl-pを繰り返し押したとき同じコマンドが何回も出てきます。
2016/02/20(土) 07:22:20.45
Ctrl-rで検索したとき一度出たものと重複するものをスキップしてくれますよ。
2016/02/20(土) 12:37:09.21
なるほど、ありがとうございます。
457名無しさん@お腹いっぱい。
2016/03/12(土) 00:34:52.65 http://d.hatena.ne.jp/ino46/20110627/1309149506
このzsh限定のselectメニューの文字化けどうすればいいんだろうか?
このzsh限定のselectメニューの文字化けどうすればいいんだろうか?
458名無しさん@お腹いっぱい。
2016/03/15(火) 20:48:15.31 selectの代わりにpercol使うことにした
459名無しさん@お腹いっぱい。
2016/03/31(木) 14:16:01.37 そういえば.zhistoryも日本語が文字化けしてた
history-all等の方で取り出すのは文字化けしないから
困った事にはならなかったが
bash_historyの方は化けないから
文字化けは他でもまた偶然直面しそうだ
直し方両方分からないし
history-all等の方で取り出すのは文字化けしないから
困った事にはならなかったが
bash_historyの方は化けないから
文字化けは他でもまた偶然直面しそうだ
直し方両方分からないし
2016/04/02(土) 02:15:04.35
なんかzshがWindowsに対応とかニュースになってるらしいけどマジ?
2016/04/02(土) 17:24:11.62
bashやろ
2016/04/02(土) 20:09:45.83
ありゃ、bashか
でもそれでもすごいことだな
でもそれでもすごいことだな
2016/04/03(日) 00:01:44.30
すごいよ。WindowsでUbuntuのバイナリ互換するんだもんな
zshも動くよきっと
zshも動くよきっと
2016/04/03(日) 00:03:01.83
2016/04/04(月) 03:22:03.43
>>459
~/.zsh_historyのエンコーディングがLatin1っぽい
~/.zsh_historyのエンコーディングがLatin1っぽい
466名無しさん@お腹いっぱい。
2016/04/04(月) 09:10:38.502016/04/04(月) 20:50:42.74
2016/04/10(日) 04:03:37.50
bashのcdでディレクトリだけ補完する、の下記設定は、zshだとどう書けばよいですか?
complete -d cd
下記でできましたが、自分には不要な設定もたくさんついてくるので、cdのディレクトリ補完だけ単独で設定したいです。
autoload -Uz compinit; compinit
complete -d cd
下記でできましたが、自分には不要な設定もたくさんついてくるので、cdのディレクトリ補完だけ単独で設定したいです。
autoload -Uz compinit; compinit
2016/04/10(日) 13:30:00.02
>>468
compctl -/ cd
compctl -/ cd
2016/04/10(日) 20:47:25.28
2016/05/11(水) 12:17:56.75
man cdとするとzshではなくbashのビルトインの方が呼ばれるんですがどうしたらいいですか
man zshbuiltinはちょっとめんどい
man zshbuiltinはちょっとめんどい
2016/05/13(金) 00:19:24.36
run-help を使えるようにしておくとか
2016/05/13(金) 19:31:54.87
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
これで補完のとき大文字小文字を区別しないようにしているのですが、
Macで/us<Tab>とすると/Usersが先に出てきてしまいます。
これを/usrが先に出てくるようにしたいです。つまり
入力した文字列と大文字小文字が一致した候補がある場合はそちらを先にしたいのですが
どうすればいいでしょうか?
これで補完のとき大文字小文字を区別しないようにしているのですが、
Macで/us<Tab>とすると/Usersが先に出てきてしまいます。
これを/usrが先に出てくるようにしたいです。つまり
入力した文字列と大文字小文字が一致した候補がある場合はそちらを先にしたいのですが
どうすればいいでしょうか?
2016/05/13(金) 22:41:19.11
アルファベットが若い方が優先されてんでしょ
475名無しさん@お腹いっぱい。
2016/05/13(金) 22:43:04.11 マックをやめればすむ話だな
2016/05/14(土) 06:12:53.83
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}'
これじゃダメなんだね?
これじゃダメなんだね?
2016/05/14(土) 20:28:58.04
大文字小文字無視系の設定は、しばらく使ってみないと自分の好みの動作が判らんよな
楽をしようとしてるのに、縛りを少しきつくすると勝手に確定させられて「おいっ!」みたいなことがあるし
楽をしようとしてるのに、縛りを少しきつくすると勝手に確定させられて「おいっ!」みたいなことがあるし
2016/05/20(金) 01:08:02.47
oh-my-zshとかprezto使わんのみんな
2016/05/20(金) 01:11:25.06
使わない
適当にググって人の設定パクるほうがいい
適当にググって人の設定パクるほうがいい
2016/05/30(月) 22:12:11.81
俺は最初oh-my-zsh使ってたけど今はantigenで落ち着いたな(´・ω・`)
2016/06/19(日) 19:22:43.33
やったことない(´・ω・`)
2016/06/23(木) 22:14:43.03
.zshrcにfunctionを書いているのですが、readでユーザ入力を待っている時に、ctrl+c、ctrl+d、esc、どれも押しても強制終了できません。
function hoge(){
function hoge(){
2016/06/23(木) 22:17:15.86
.zshrcにfunctionを書いているのですが、readでユーザ入力を待っている時に、ctrl+c、ctrl+d、esc、どれも押しても強制終了できません。
ユーザ入力ができて、入力待ち中に強制キャンセルもできるようにするにはどのようにすればよいでしょうか?
function hoge(){
# 入力待ち中に強制キャンセルが何も効かない。。
printf "input: "
read string
}
ユーザ入力ができて、入力待ち中に強制キャンセルもできるようにするにはどのようにすればよいでしょうか?
function hoge(){
# 入力待ち中に強制キャンセルが何も効かない。。
printf "input: "
read string
}
2016/06/27(月) 20:12:25.69
485483
2016/06/30(木) 00:17:40.19 >>484
ありがとうございます。
ctrl+cのあとにエンターを押せばtrapに補足されましたが、ctrl+cだけではキャンセルされませんでした。。
バージョンはこれでした。zsh 4.3.11 (x86_64-redhat-linux-gnu)
テストで、 trap "echo aaa" SIGINT としたんですが、これ、関数が終わった後も、コマンドライン上でctrl+cすると
aaa
aaa
aaa
...
とtrapが発動するようになりますね。。
とりあえず、 read -k 1 str で1文字入力にすることで、ctrl+cが入力されるとそれでキャンセルされたように見えるのでこれで代用しようかな。
ありがとうございます。
ctrl+cのあとにエンターを押せばtrapに補足されましたが、ctrl+cだけではキャンセルされませんでした。。
バージョンはこれでした。zsh 4.3.11 (x86_64-redhat-linux-gnu)
テストで、 trap "echo aaa" SIGINT としたんですが、これ、関数が終わった後も、コマンドライン上でctrl+cすると
aaa
aaa
aaa
...
とtrapが発動するようになりますね。。
とりあえず、 read -k 1 str で1文字入力にすることで、ctrl+cが入力されるとそれでキャンセルされたように見えるのでこれで代用しようかな。
486名無しさん@お腹いっぱい。
2016/07/01(金) 20:45:43.11 >>485
見当違いなアドバイスだが、readに-tつけては
見当違いなアドバイスだが、readに-tつけては
487483
2016/07/07(木) 00:51:28.672016/08/05(金) 17:35:39.35
ここ最近、履歴の共有ができなくなってしまいました
inc_append_history と share_history は有効にしてます
何が悪さをしてるでしょうか?
zshは5.2です
inc_append_history と share_history は有効にしてます
何が悪さをしてるでしょうか?
zshは5.2です
2016/12/22(木) 11:34:44.60
function定義した中身を表示する方法はありますか?
aliasはwhichで内容を確認できるのですが、functionはwhichで見れず。。
何か他の方法で見れないでしょうか?
aliasはwhichで内容を確認できるのですが、functionはwhichで見れず。。
何か他の方法で見れないでしょうか?
490名無しさん@お腹いっぱい。
2016/12/22(木) 16:04:48.16 typeやとあかん?
491名無しさん@お腹いっぱい。
2016/12/22(木) 16:05:32.06 すみません。忘れてください
2016/12/22(木) 20:10:18.20
2016/12/22(木) 20:17:52.21
関数定義も普通にwhichで見れると思うけど……
% function foo() { echo hoge; }
% which foo
foo () {
echo hoge
}
% function foo() { echo hoge; }
% which foo
foo () {
echo hoge
}
2016/12/22(木) 22:09:41.71
whichが置き換わってるんとちゃう?
built-in which
でいける
built-in which
でいける
495489
2016/12/23(金) 00:31:06.34 >>493,494
おお!
その通りでした。
whichをwhichするのは初めてだ。
↓alias登録されてた!
% which which
which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
これでいけました。ありがとうございます。
% builtin which is_exists
続きます。
おお!
その通りでした。
whichをwhichするのは初めてだ。
↓alias登録されてた!
% which which
which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
これでいけました。ありがとうございます。
% builtin which is_exists
続きます。
496489
2016/12/23(金) 00:37:07.30 続きです。
.zshrcと.zshenv見直してもalias登録してないので、どこで設定されてるかぐぐったら
こんなの見つけました。
ttp://d.hatena.ne.jp/BigFatCat/20080601
どうやら下記で設定されてるみたいです。
/etc/profile.d/which-2.sh
これはzshの場合デフォルトで読まれるみたいですが、functionが見れなくなる欠陥whichで書き換えるとか迷惑ですね。。
これを読まないようにする設定とか無いでしょうか?
.zshrcと.zshenv見直してもalias登録してないので、どこで設定されてるかぐぐったら
こんなの見つけました。
ttp://d.hatena.ne.jp/BigFatCat/20080601
どうやら下記で設定されてるみたいです。
/etc/profile.d/which-2.sh
これはzshの場合デフォルトで読まれるみたいですが、functionが見れなくなる欠陥whichで書き換えるとか迷惑ですね。。
これを読まないようにする設定とか無いでしょうか?
497489
2016/12/23(金) 00:39:13.07 途中で書き込んでしまいましたすみません。
読まないようにする設定が無ければ、無理矢理感があって気持ち悪いですが unalias which を.zshrcに入れて我慢します。
読まないようにする設定が無ければ、無理矢理感があって気持ち悪いですが unalias which を.zshrcに入れて我慢します。
2016/12/23(金) 00:46:56.65
zshはそんなものデフォルトで入れないよ。冤罪だw
その手のおせっかいはお使いのディストリビューション固有の事情かと。
その手のおせっかいはお使いのディストリビューション固有の事情かと。
499489
2016/12/23(金) 00:51:58.22 えええ
centos6です。。
centos6です。。
2016/12/24(土) 12:06:57.31
curlで&や?を含むURLを取得するとき、いちいちURLをクォートで囲むのが
面倒なんだが、いい方法ないだろうか?
面倒なんだが、いい方法ないだろうか?
2016/12/24(土) 14:15:22.12
URLをコピペするときは bracketed-paste-url-magic が役立つ
2016/12/24(土) 14:58:57.32
これか。これってターミナルエミュレータがbracketed pasteに対応してないとダメなんじゃない?
https://github.com/zsh-users/zsh/blob/master/Functions/Zle/bracketed-paste-url-magic
こっちのurl-quote-magicなら自分のとこでも動いた。ともあれthx
http://d.hatena.ne.jp/lurker/20061231/1167570929
https://github.com/zsh-users/zsh/blob/master/Functions/Zle/bracketed-paste-url-magic
こっちのurl-quote-magicなら自分のとこでも動いた。ともあれthx
http://d.hatena.ne.jp/lurker/20061231/1167570929
2016/12/24(土) 19:54:49.31
自分はその手のコマンドは noglob を使った alias を定義してるな
2016/12/25(日) 07:10:40.66
noglobは&に効かなくね?
2016/12/25(日) 14:42:22.28
>>504
あれ、確かにそうだよなと思って履歴を見返したら、クォート
あれ、確かにそうだよなと思って履歴を見返したら、クォート
2016/12/25(日) 14:51:11.09
途中で切れてしまった。履歴を見返したら & を含む場合はクォートしていたw
ごめんち
ブラウザ経由で呼び出す機会が多くなったし、端末に張り付ける場合も
正規化した URL を使ってたから、クォートする機会があまりなかった
自分の記憶が全くに当てにならんのが泣ける
ごめんち
ブラウザ経由で呼び出す機会が多くなったし、端末に張り付ける場合も
正規化した URL を使ってたから、クォートする機会があまりなかった
自分の記憶が全くに当てにならんのが泣ける
2017/02/08(水) 15:33:37.91
ttps://github.com/ryoppy/cool-peco
を入れたんだけど C-r で cool-peco-history にならんのです。
デフォルトの bck-i-search: になっちまう。
コマンドラインからは cool-peco-history 呼べるし、
alias の hist も呼べる。
$ bindkey | grep peco
"^R" cool-peco-history
になってるし、コマンドラインから
$ bindkey '^r' cool-peco-history
しても変わらず。
「やっちまったなぁ!」を使わず解決策教えてほしいです。
を入れたんだけど C-r で cool-peco-history にならんのです。
デフォルトの bck-i-search: になっちまう。
コマンドラインからは cool-peco-history 呼べるし、
alias の hist も呼べる。
$ bindkey | grep peco
"^R" cool-peco-history
になってるし、コマンドラインから
$ bindkey '^r' cool-peco-history
しても変わらず。
「やっちまったなぁ!」を使わず解決策教えてほしいです。
508名無しさん@お腹いっぱい。
2017/03/13(月) 11:52:13.60 pushd +3
とかってしたとき、3つ分スタック全体を循環させるんじゃなくて、
3つ目を取り出してスタックトップに乗せるって挙動なかったですか?
つまり最近使った順にスタックが並ぶ。
昔出来た気がするのですが、今マニュアル見てもなくて。
とかってしたとき、3つ分スタック全体を循環させるんじゃなくて、
3つ目を取り出してスタックトップに乗せるって挙動なかったですか?
つまり最近使った順にスタックが並ぶ。
昔出来た気がするのですが、今マニュアル見てもなくて。
2017/03/25(土) 16:44:28.09
ulimit -aってやると一番下に
-N 15: unlimited
と出るんですが、この項目は何ですか?
-N 15: unlimited
と出るんですが、この項目は何ですか?
2017/08/16(水) 10:45:32.97
extendedglobがmissing delimiterとか言われてエラーになる
何か他のオプションと衝突するとかある?
何か他のオプションと衝突するとかある?
2017/08/19(土) 19:42:44.72
cdr だけ 部分一致で補完したいのですが、どうすればよいでしょうか?
実用途としましては、project名 入力で path が補完して移動です。
zstyle ":completion:*" matcher-list 'm:{a-zA-Z}={A-Za-z} l:|=*'
で部分一致になった( l:=|* が 妥当かもわかってません)ので、
zstyle ":completion:*:*:cdr:*:*" matcher-list 'm:{a-zA-Z}={A-Za-z} l:|=*'
としてみたのですが、反映されませんでした。
実用途としましては、project名 入力で path が補完して移動です。
zstyle ":completion:*" matcher-list 'm:{a-zA-Z}={A-Za-z} l:|=*'
で部分一致になった( l:=|* が 妥当かもわかってません)ので、
zstyle ":completion:*:*:cdr:*:*" matcher-list 'm:{a-zA-Z}={A-Za-z} l:|=*'
としてみたのですが、反映されませんでした。
2017/11/08(水) 00:09:30.35
最近.zshrcを見直してzmodload zsh/filesが入ってたことに気付いたけど
これもう完全にいらない子なんだな。
たしか引数の最大バイト数を回避する目的で入れた記憶があるけど、
最近のLinuxは引数上限がかなり緩和されたはずだから困ることはまずないし、
むしろPOSIX準拠してないので制約が多い。
というかそもそもこれが作られた目的が緊急時のリカバリ用というのを今頃知った。
ただのPOSIX拡張だと思ってたわ・・・。manは見なきゃ駄目だな。
これもう完全にいらない子なんだな。
たしか引数の最大バイト数を回避する目的で入れた記憶があるけど、
最近のLinuxは引数上限がかなり緩和されたはずだから困ることはまずないし、
むしろPOSIX準拠してないので制約が多い。
というかそもそもこれが作られた目的が緊急時のリカバリ用というのを今頃知った。
ただのPOSIX拡張だと思ってたわ・・・。manは見なきゃ駄目だな。
513名無しさん@お腹いっぱい。
2017/12/29(金) 07:26:25.83 誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
CDVW4G8P2M
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
CDVW4G8P2M
2018/02/09(金) 15:37:56.37
世の中pythonが流行ってるけど、案の定xonshっていうシェルも出てきた
そのうちイーマック厨みたいにpythonは環境です(キリッとか言い出すやつも現れそうだな
そのうちイーマック厨みたいにpythonは環境です(キリッとか言い出すやつも現れそうだな
2018/02/12(月) 03:10:42.94
2018/02/14(水) 09:51:22.03
☆ 日本の、改憲をしましょう。現在、衆議員と参議院の両院で、
改憲議員が3分の2を超えております。『憲法改正国民投票法』、
でググってみてください。国会の発議はすでに可能です。
平和は勝ち取るものです。お願い致します。☆☆
改憲議員が3分の2を超えております。『憲法改正国民投票法』、
でググってみてください。国会の発議はすでに可能です。
平和は勝ち取るものです。お願い致します。☆☆
2018/03/05(月) 18:24:52.65
fzfのキーバインドを変更したい時ってどうすればいいんですか?
具体的にはC-tをC-TもしくはM-Tに変更したいです
具体的にはC-tをC-TもしくはM-Tに変更したいです
518名無しさん@お腹いっぱい。
2018/03/15(木) 08:14:49.67 muxer -i input.aac?sbr --file-format m4a -o output.m4a
ってコマンドを打ちたいんですが、sbrというオプションを付けるときは頭に?を付けないといけないんですが、
「?」がzshでワイルドカードとして扱われてしまいます。
ワイルドカードとして認識されないようにするにはどうしたらいいでしょうか?
ってコマンドを打ちたいんですが、sbrというオプションを付けるときは頭に?を付けないといけないんですが、
「?」がzshでワイルドカードとして扱われてしまいます。
ワイルドカードとして認識されないようにするにはどうしたらいいでしょうか?
519名無しさん@お腹いっぱい。
2018/03/15(木) 08:31:31.50 自己レス
?の前にバックスラッシュを入れたら使えました。
?の前にバックスラッシュを入れたら使えました。
2018/03/15(木) 11:57:18.95
zshのデフォルトだと、マッチするファイルがなければ?は?のままのはずだが。
2018/03/16(金) 01:19:49.71
>>520
バックスラッシュ付けないとこのようになってしまいます。
$ muxer -i input.aac?sbr --file-format m4a -o output.m4a
zsh: no matches found: input.aac?sbr
バックスラッシュ付けないとこのようになってしまいます。
$ muxer -i input.aac?sbr --file-format m4a -o output.m4a
zsh: no matches found: input.aac?sbr
2018/03/16(金) 01:28:32.25
2018/03/16(金) 01:54:20.85
2018/04/13(金) 02:04:18.70
$ $PATH<Enter>
としたとき$PATHの値が表示されるようにできるみたいなんですが、
そういうオプションがあるんでしょうか?
としたとき$PATHの値が表示されるようにできるみたいなんですが、
そういうオプションがあるんでしょうか?
2018/04/14(土) 20:09:52.28
zsh: No such file or directory: のようなおまけがついててもいいなら
そのままでも表示はされる場合が多い気がする
そのままでも表示はされる場合が多い気がする
2018/04/15(日) 02:53:00.19
確かに。でも$PATHならともかく他の環境変数にもその方法を適用するには
リスクが高いですね。
リスクが高いですね。
2018/04/15(日) 09:21:33.89
preexec使えばできると思う
2018/04/15(日) 16:39:01.17
accept-lineをオーバーライドするのでもできるかも
https://stackoverflow.com/a/28101424/5209556
https://stackoverflow.com/a/28101424/5209556
2018/04/17(火) 21:53:10.70
普通にechoするんじゃ何がダメなんだ
2018/04/22(日) 17:49:31.90
ここでも出てるんだが、
https://stackoverflow.com/questions/7342233/zsh-completion-inside-quoted-strings
git commit 'Add f<TAB>
としたときfで始まるファイル名を補完してくれたらいいんだが
https://stackoverflow.com/questions/7342233/zsh-completion-inside-quoted-strings
git commit 'Add f<TAB>
としたときfで始まるファイル名を補完してくれたらいいんだが
2018/05/03(木) 01:54:35.99
以下のように (( )) で浮動小数演算したところ思わぬ結果になりました。
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)
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)
2018/05/03(木) 19:34:11.16
よく知らずに答えるけど
$(())を使うと文字列
(())を使うと浮動少数や整数
になるんじゃないの?
$(())を使うと文字列
(())を使うと浮動少数や整数
になるんじゃないの?
2018/05/08(火) 19:03:35.11
型はtypeset指定しなければ暗黙的に決まるわけだが、
floatは指数形式と小数点固定形式があるが(())内の暗黙floatは勝手に後者になる
そもそも型とその出力表現は別の概念なのにごっちゃになってんのが糞仕様すぎ
floatは指数形式と小数点固定形式があるが(())内の暗黙floatは勝手に後者になる
そもそも型とその出力表現は別の概念なのにごっちゃになってんのが糞仕様すぎ
2018/05/09(水) 06:50:48.71
タブ補完でmigemo使う方法って知られてるの
535名無しさん@お腹いっぱい。
2018/05/22(火) 02:54:33.28 知り合いから教えてもらったパソコン一台でお金持ちになれるやり方
時間がある方はみてもいいかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
NQSL6
時間がある方はみてもいいかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
NQSL6
2018/05/25(金) 04:02:31.48
zsh/filesって今はいらない子なの?
これないと引数の最大バイト数の制約がきついよね?
これないと引数の最大バイト数の制約がきついよね?
2018/05/25(金) 07:37:08.83
自分が必要なら使えばいい
俺は引数の最大バイト数制限なんてここ10年ひっかかったことないし
あったとしたら自分のマシンじゃないからzshじゃなかったはず
俺は引数の最大バイト数制限なんてここ10年ひっかかったことないし
あったとしたら自分のマシンじゃないからzshじゃなかったはず
2018/05/25(金) 23:18:15.61
昔のLinuxはかなり少なかったらしいね>最大バイト数制限
昔初めて.zshrcを作る際に他人の設定をパクってそのまま惰性で使ってる人多そう・・・
昔初めて.zshrcを作る際に他人の設定をパクってそのまま惰性で使ってる人多そう・・・
2018/05/26(土) 17:34:56.75
そもそもこれが作られた目的って緊急メンテ用だし
http://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.
http://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.
2018/05/27(日) 11:56:00.46
2018/05/27(日) 20:12:13.46
>>540
530ってそれ関係ある?
530ってそれ関係ある?
542名無しさん@お腹いっぱい。
2018/07/10(火) 10:11:10.94 kill screen<TAB>
とか補完して候補が1個しかなかった場合、即PIDに補完されるけど、
候補が1個でもメニューを表示するようにできないかな
他のコマンドの場合はいいんだけど、killの場合は確認しないと不安で
zstyle ':completion:*' menu select=1
はやってみたけど変わらなかった
とか補完して候補が1個しかなかった場合、即PIDに補完されるけど、
候補が1個でもメニューを表示するようにできないかな
他のコマンドの場合はいいんだけど、killの場合は確認しないと不安で
zstyle ':completion:*' menu select=1
はやってみたけど変わらなかった
2018/08/13(月) 19:24:28.55
pgrepやpkillでよくね?
2018/08/14(火) 20:21:50.30
補完でできた方がよくね?
2018/08/29(水) 06:32:57.35
bash が入ってるが zsh は入ってない環境って例えばどんなの?
2018/08/29(水) 11:47:58.80
2018/08/29(水) 13:19:33.55
そうなのか。実は zsh スクリプトを積極的に書いていっていいものかと悩んでいるんだ。
他人に使ってもらうためのスクリプトは bash で書いていたが、普段使いのシェルが zsh なので
なるべくzsh を使いたい。しかし「このスクリプトを使うためにまず zsh 自体をインストールして下さい」
と言うのは避けたい。導入のハードルを上げたくない。
他人に使ってもらうためのスクリプトは bash で書いていたが、普段使いのシェルが zsh なので
なるべくzsh を使いたい。しかし「このスクリプトを使うためにまず zsh 自体をインストールして下さい」
と言うのは避けたい。導入のハードルを上げたくない。
2018/08/29(水) 19:14:19.25
対話的に使うシェルとスクリプトで使うシェルは別でもいいんじゃないの
2018/08/29(水) 22:33:23.57
日常の作業を自動化したくてスクリプトを書くことがよくあるんです。
あと zsh の rcquotes とか zparseopts とかが便利すぎるので…
あと zsh の rcquotes とか zparseopts とかが便利すぎるので…
2018/08/29(水) 23:32:01.46
自分で答え出してるんじゃね
自分しか使わないならzshでいい
他人に使ってほしいならせめてbash
自分しか使わないならzshでいい
他人に使ってほしいならせめてbash
2018/08/30(木) 00:15:19.56
2018/08/30(木) 07:17:05.79
あるよ
CentOS7でもそうだろ
CentOS7でもそうだろ
2018/08/30(木) 11:46:06.84
入ってるか入ってないかは半々ぐらいだね
2018/08/30(木) 12:49:34.30
なるほど、そんなレベルなんですか…
2018/08/30(木) 17:31:18.55
「入れれない」ってんならともかく、「入ってない」だけなら入れれば済むワケで
2018/08/30(木) 18:41:39.13
最近のOSXにはプリインストールだから使って良いんちゃう
557名無しさん@お腹いっぱい。
2018/08/30(木) 21:25:34.92 サーバ用途だとzshは明示的に入れないと入らないでしょ。稼働中のサーバでは後から入れるにしても難色を示される事も多いですし、上でどなたか書かれてたように、自分に決定権のある環境以外でも使うのなら、zshでスクリプトを書くのは避けるべき。
最近はデフォルトのshellがbashになってたりするけど、昔はbashですら入っていない環境も多くて、/bin/sh で書くように教育されたよ。
年寄り臭くてスマンね
最近はデフォルトのshellがbashになってたりするけど、昔はbashですら入っていない環境も多くて、/bin/sh で書くように教育されたよ。
年寄り臭くてスマンね
2018/08/31(金) 01:32:04.70
>>547
俺も昔おんなじことで悩んでたけど、
>「このスクリプトを使うためにまず zsh 自体をインストールして下さい」
これが通らないような相手のことを考えてスクリプト書いてやるのが馬鹿らしくなって、
以来悩むのはやめたわ。それ自体が仕事だとそうもいかんのだろうけど。
俺も昔おんなじことで悩んでたけど、
>「このスクリプトを使うためにまず zsh 自体をインストールして下さい」
これが通らないような相手のことを考えてスクリプト書いてやるのが馬鹿らしくなって、
以来悩むのはやめたわ。それ自体が仕事だとそうもいかんのだろうけど。
2018/08/31(金) 14:18:23.15
>>551
パッケージでなら用意されてない環境も今では珍しいと思うけど、
最初からインストールされてるかどうかで言えば、入ってない環境なんて
山ほどあるかと。
他の人も書いてるけど、デスクトップ用途ならともかく、サーバ用途なら
sh、csh、bash、tcshぐらいまでしか入ってないとかは普通にあり得る。
パッケージでなら用意されてない環境も今では珍しいと思うけど、
最初からインストールされてるかどうかで言えば、入ってない環境なんて
山ほどあるかと。
他の人も書いてるけど、デスクトップ用途ならともかく、サーバ用途なら
sh、csh、bash、tcshぐらいまでしか入ってないとかは普通にあり得る。
2018/08/31(金) 17:27:51.20
csh系は論外とすると、結局無難なのはshかbashだろうか
2018/08/31(金) 17:45:30.47
bashがデフォで入ってない環境もあるんで、
無理のない範囲でshにしとくといいよ。
無理のない範囲でshにしとくといいよ。
2018/09/01(土) 04:27:44.51
> 年寄り臭くて
いいえ、助言助かりますよ。かつてのbashの位置にようやく追いついたということですね。
先輩方どうもありがとう。
サーバーで使うなら、zsh は諦めるけど
デスクトップでは使ってもいいなと思えてきた。
いいえ、助言助かりますよ。かつてのbashの位置にようやく追いついたということですね。
先輩方どうもありがとう。
サーバーで使うなら、zsh は諦めるけど
デスクトップでは使ってもいいなと思えてきた。
2018/09/01(土) 04:29:57.61
そうすると気になるのは、fish や Go との差はどうなのかってこと。 必要ならインストールさせればいい、ってスタンス
なら、当然その辺がライバルになってくるけど…
なら、当然その辺がライバルになってくるけど…
2018/09/01(土) 22:08:09.98
まあいいか。スレにみんなにお礼と言ってはナンですが、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
~ 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
2018/09/15(土) 02:17:59.88
zshwiki.orgってまだ落ちてるの?
もしかして閉鎖?
もしかして閉鎖?
2018/10/28(日) 20:27:16.64
fishでshift+tabを押すと補完候補をインクリメンタルに選択出来るんだけど、これに似た機能はzshないかね
2018/11/01(木) 13:19:56.37
hoge hoge hoge 〜 hoge
と文字列を任意個展開するスマートな方法ないですかね?
for文使えとかそういうのはなしでお願いします
マニュアルのExpansionの章をくまなく読めばわかるのかもだけど
と文字列を任意個展開するスマートな方法ないですかね?
for文使えとかそういうのはなしでお願いします
マニュアルのExpansionの章をくまなく読めばわかるのかもだけど
2018/11/01(木) 13:28:12.15
echo $(yes hoge | head -10)
2018/11/01(木) 13:33:18.60
あ、repeatコマンドもなしでお願いします
{hoge(n)} みたいに短くスマートにやる方法が知りたい
{hoge(n)} みたいに短くスマートにやる方法が知りたい
2018/11/01(木) 13:36:12.43
forもwhileもrepeatも使ってないからセーフ
2018/11/01(木) 13:36:59.97
572名無しさん@お腹いっぱい。
2018/11/01(木) 14:33:26.13573名無しさん@お腹いっぱい。
2018/11/01(木) 23:47:40.16 ぼうやーってわしもちふつうだけど、まーおこめのほうがいいんだけど
エラーの原因が分からない?
まず確認しよう!
《書き込めない時の早見表》
《掲示板へ戻る》
《スレッド一覧へ戻る》
《スレッドへ戻る》
もしかしてアクセス規制ですか?
お使いのプロバイダさんが、原因となった人に対応するまで規制は続きます。
個別の対応・進展については、プロバイダさんへお尋ねください。
その他、5chちゃんねるについては、 初心者の質問 批判要望 運用情報 運用臨時 などへどうぞ。
エラーの原因が分からない?
まず確認しよう!
《書き込めない時の早見表》
《掲示板へ戻る》
《スレッド一覧へ戻る》
《スレッドへ戻る》
もしかしてアクセス規制ですか?
お使いのプロバイダさんが、原因となった人に対応するまで規制は続きます。
個別の対応・進展については、プロバイダさんへお尋ねください。
その他、5chちゃんねるについては、 初心者の質問 批判要望 運用情報 運用臨時 などへどうぞ。
574名無しさん@お腹いっぱい。
2018/11/01(木) 23:49:13.04 やっぽ(^|0|^)
575名無しさん@お腹いっぱい。
2018/11/02(金) 00:43:17.26 あーめんどくさいなー、びんぼうだしさいごだし、ぼうそういこかなあれはあるか
576名無しさん@お腹いっぱい。
2018/11/02(金) 00:45:18.15 わしかわいそーきょうじゅうにじょうものんだし、ああじゅよんのむと、ししょーあるksなきのせいかな
577名無しさん@お腹いっぱい。
2018/11/02(金) 00:46:56.52 やだおおさかなんか、またもどってこないといけない
578名無しさん@お腹いっぱい。
2018/11/02(金) 00:48:19.84 なんでかんじじゃないんだ
2018/11/02(金) 01:24:08.04
fish使ってみたけどゴミじゃん
zshこそ至強
zshこそ至強
2018/11/04(日) 19:43:05.08
[ $i -lt 100000 ] と [[ $i -lt 100000 ]] では後者のほうが速い
Linux上では2.5倍ぐらい後者が速いが、
WSL上では10倍以上の差をつけて後者が速い
他のシェルでも似たような傾向はあるがこれほどの差はない
どうもzshはシステムコール呼びすぎっぽいな
Linux上では2.5倍ぐらい後者が速いが、
WSL上では10倍以上の差をつけて後者が速い
他のシェルでも似たような傾向はあるがこれほどの差はない
どうもzshはシステムコール呼びすぎっぽいな
2018/11/04(日) 19:49:50.35
[ ] が遅いって言うよりも関数呼び出しが遅い気がするな
while [[ $i -lt 100000 ]]; do を
↓
foo() {
[[ $i -lt 100000 ]]
}
while foo; do
こんな感じに置き換えてみたら、同じように遅くなった
[ ] を使っていた場合、最初から関数呼び出し相当だったということかも
while [[ $i -lt 100000 ]]; do を
↓
foo() {
[[ $i -lt 100000 ]]
}
while foo; do
こんな感じに置き換えてみたら、同じように遅くなった
[ ] を使っていた場合、最初から関数呼び出し相当だったということかも
2018/11/04(日) 20:00:30.18
ベンチマークで、ループしてevalとそうでない場合の
速度差を調べようと思ったんだが、まさかループの回数判定で
evalと同等の差がでるとはwww
evalもzshだけ遅い。他のシェルはeval使っていても
ほとんど速度は落ちないというのに
速度差を調べようと思ったんだが、まさかループの回数判定で
evalと同等の差がでるとはwww
evalもzshだけ遅い。他のシェルはeval使っていても
ほとんど速度は落ちないというのに
2018/11/07(水) 00:58:35.37
あれ、[って外部コマンドのtestじゃないの?
2018/11/07(水) 04:53:13.07
俺の知る限り、現在使われてるBourne系シェルの
全てで [ はビルトインになっている
全てで [ はビルトインになっている
2018/11/09(金) 06:53:11.53
\[
2018/11/09(金) 09:26:03.48
\[^_
2018/11/11(日) 11:01:33.88
\[^_^
2018/11/23(金) 23:01:18.39
setopt forcefloatして(( ))の数値演算すると固定表示で出力される仕様みたい
それはいいんだけど、最後の桁に誤差が混じってちょっと困る
なにかいい方法ないかな
$ echo $(( 1 ))
1.
$ echo $(( .1 ))
0.10000000000000001 ←0.1 ってなってほしい
それはいいんだけど、最後の桁に誤差が混じってちょっと困る
なにかいい方法ないかな
$ echo $(( 1 ))
1.
$ echo $(( .1 ))
0.10000000000000001 ←0.1 ってなってほしい
2018/11/24(土) 12:49:07.27
2018/11/24(土) 17:01:24.90
printfで0.999999999999999になったとき
どう表示されるのだろうか
どう表示されるのだろうか
2019/02/27(水) 22:41:58.39
先輩、手の空いてる時に教えていただけませんか?
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 してるディレクトリで
コンテナが吐き出すファイルだからです。
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 してるディレクトリで
コンテナが吐き出すファイルだからです。
2019/02/28(木) 00:06:45.12
>>591
\*.mp4 みたいにエスケープするとどうなる?
\*.mp4 みたいにエスケープするとどうなる?
593591
2019/02/28(木) 00:20:38.97 レスありがとうです!
エスケープ試してみたのですが、
zsh: no matches found: /home/user/work*.mp4
で結果は変わらなかったです。
エスケープ試してみたのですが、
zsh: no matches found: /home/user/work*.mp4
で結果は変わらなかったです。
2019/02/28(木) 01:58:08.65
クライアント側のzshが先にワイルドカード展開しようとしてエラーになってるのかな
ダブルクオートをシングルクオートにするのはどうか
lsコマンドを囲んだ元のシングルクオートはエスケープするか$()で置き換えるか
ダブルクオートをシングルクオートにするのはどうか
lsコマンドを囲んだ元のシングルクオートはエスケープするか$()で置き換えるか
2019/02/28(木) 04:07:10.31
ls を囲んでるの、シングルクオートじゃなくてバッククオートなんだよ。
だから ssh を呼び出す前にクライアント側のシェルで展開されて、何もマッチしないから空の文字列になってる。
単純にダブルクオートをシングルクオートに変えるだけでいいと思うよ。
だから ssh を呼び出す前にクライアント側のシェルで展開されて、何もマッチしないから空の文字列になってる。
単純にダブルクオートをシングルクオートに変えるだけでいいと思うよ。
2019/02/28(木) 11:32:06.11
2019/03/06(水) 19:43:09.72
ワイルドカードの質問ですが
mkdir ~/hoge
touch ~/hoge/fuga
ls ~/hoge/fu*
最後の行のfu*がタブ押しても補完してくれません
~が$HOMEだと補完してくれます
バグですかね?
mkdir ~/hoge
touch ~/hoge/fuga
ls ~/hoge/fu*
最後の行のfu*がタブ押しても補完してくれません
~が$HOMEだと補完してくれます
バグですかね?
2019/03/06(水) 21:40:41.30
2019/03/30(土) 02:31:35.90
(( a = 0 )) と (( a = それ以外の数値 )) の終了ステータス $? が
それぞれ1と0なんどけど仕様?(( a = 0.0 )) とかにしても1。
変数に設定された値自体が終了ステータスに影響するっておかしくない?
エラーがあると困るシェルスクリプトでは最初に set -e するようにしてるんだが
これじゃ (( )) で数値演算したいときに超困る
それぞれ1と0なんどけど仕様?(( a = 0.0 )) とかにしても1。
変数に設定された値自体が終了ステータスに影響するっておかしくない?
エラーがあると困るシェルスクリプトでは最初に set -e するようにしてるんだが
これじゃ (( )) で数値演算したいときに超困る
2019/03/30(土) 09:43:53.90
>>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には無いけど同じルールに従うはず
http://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文の中に押し込むとか色々ある
ちょっと調べてみた
まず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には無いけど同じルールに従うはず
http://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文の中に押し込むとか色々ある
2019/03/30(土) 09:45:56.68
間違えた修正
誤 ((a=0))は0、((a=1))は1を返すということになる
正 ((a=0))は1、((a=1))は0を返すということになる
誤 ((a=0))は0、((a=1))は1を返すということになる
正 ((a=0))は1、((a=1))は0を返すということになる
2019/03/30(土) 14:08:35.55
>>600,601
調べてくれてありがとう。Linux歴15年以上あるのに今頃知りましたよ
: $(( 〜 )) のスタイルにするしかないかー。面倒だ
ちなみにこんなwhile処理で発覚した。致命的なミスをする前に気づけてよかった
set -e
(( x = xmin ))
while : ; do
〜処理〜
(( x += dx ))
(( x > xmax )) && break
done
変数は全部浮動小数ね
調べてくれてありがとう。Linux歴15年以上あるのに今頃知りましたよ
: $(( 〜 )) のスタイルにするしかないかー。面倒だ
ちなみにこんなwhile処理で発覚した。致命的なミスをする前に気づけてよかった
set -e
(( x = xmin ))
while : ; do
〜処理〜
(( x += dx ))
(( x > xmax )) && break
done
変数は全部浮動小数ね
2019/04/18(木) 22:53:06.53
gitで
M ../a1.txt
M ../a2.txt
こんな風に親ディレクトリに変更ファイルがあるとき
git add <Tab>
で候補だしてくれないじゃん。
git add ../<Tab>
なら出るんだけど。これ出るようにできないかね?
M ../a1.txt
M ../a2.txt
こんな風に親ディレクトリに変更ファイルがあるとき
git add <Tab>
で候補だしてくれないじゃん。
git add ../<Tab>
なら出るんだけど。これ出るようにできないかね?
2019/04/21(日) 01:52:16.18
2019/04/22(月) 23:59:34.71
せっかくzsh使ってんのに-gtだの-leだのまどろっこしい書き方できるかよ
2019/04/24(水) 00:30:15.21
だからそのせいでバグってるんだろw
2019/05/12(日) 09:37:21.73
~/.zsh_historyファイルを読んで、コマンド実行の傾向を分析するkibanaのdashboardを作りました。
dockerで作らているので、非常に簡単に始められます。
もし良かったら使ってみてください。
https://github.com/codequokka/shell-history-analyzer
dockerで作らているので、非常に簡単に始められます。
もし良かったら使ってみてください。
https://github.com/codequokka/shell-history-analyzer
2019/05/20(月) 19:48:20.77
lsのソートについて質問
ファイル名先頭の_が無視されるのか
hoge1 _hoge2 hoge3
となるのだけど
_hoge2 hoge1 hoge3
とするにはどうしたらいいの?
ファイル名先頭の_が無視されるのか
hoge1 _hoge2 hoge3
となるのだけど
_hoge2 hoge1 hoge3
とするにはどうしたらいいの?
2019/05/21(火) 06:05:49.21
env LC_COLLATE=C ls
2019/05/21(火) 15:54:03.74
611名無しさん@お腹いっぱい。
2019/06/04(火) 15:35:52.59 新しい macOS のデフォルトシェルが zsh になるってよ!
2019/06/04(火) 15:50:15.05
macOS 10.15 Catalinaではbashに代わりzshがデフォルトシェルに。
https://applech2.com/archives/20190604-zsh-as-the-default-shell-on-macos-10-15-catalina.html
https://applech2.com/archives/20190604-zsh-as-the-default-shell-on-macos-10-15-catalina.html
2019/06/04(火) 19:47:25.06
bashですら重いのに、更に重いzshにするのか・・・
誰が喜ぶんだ?
誰が喜ぶんだ?
2019/06/04(火) 20:29:47.36
Macのシェルなんて素人さんしか使わねぇよ
WSLと同じ
品質なんかどうでも良い
WSLと同じ
品質なんかどうでも良い
2019/06/04(火) 21:16:25.72
GNUは嫌だ
でも今更cshも嫌だ
zsh
でも今更cshも嫌だ
zsh
2019/06/05(水) 02:28:28.14
zshは互換性が低いんだよな
2019/06/05(水) 10:39:23.94
zshに関する日本語の記事が増えるなら嬉しい
2019/06/05(水) 13:07:51.89
日本語のドキュメントなんて飽和してね?
2019/06/09(日) 20:53:15.41
タブ補完で例えば、
cp oo/oo kk/kk の oo/から保管して
ppppを入力する場合、ooとppppの差分の2文字が上書きされるのですが、回避する方法はありますか?
上の場合だと
cp oo/ppppk/kk のような結果になります。
cp oo/oo kk/kk の oo/から保管して
ppppを入力する場合、ooとppppの差分の2文字が上書きされるのですが、回避する方法はありますか?
上の場合だと
cp oo/ppppk/kk のような結果になります。
620名無しさん@お腹いっぱい。
2019/07/25(木) 03:09:55.25 カレントシェルで文法チェックのためにdryrunしたい。
zsh -n $BUFFER で変数 BUFFER をチェックできるけど、
新しくシェルを立ち上げるから setopt がズレてるおそれがあり、
いまのシェルで $BUFFER が実行できることを保証できない。
zsh -n $BUFFER で変数 BUFFER をチェックできるけど、
新しくシェルを立ち上げるから setopt がズレてるおそれがあり、
いまのシェルで $BUFFER が実行できることを保証できない。
621620
2019/07/26(金) 01:38:11.16 たとえば ignore_close_braces がオンになっていると
args(){ echo $# } はパースエラーになる。
args(){ echo $# } はパースエラーになる。
2019/07/31(水) 19:38:44.01
そもそも dryrunである以上、$BUFFER が実行できることなんて保証できない
setoptを含め、実行時にしかわからない情報に依存するものは
実行しないdryrunでわかるわけがない
setoptを含め、実行時にしかわからない情報に依存するものは
実行しないdryrunでわかるわけがない
2019/08/01(木) 12:54:23.45
>>622
なら zsh -n は何の役にたつの?
文法をチェックする… ただしパーザの挙動を変えるsetoptが起こる場合
結果は正しくない。起こるか否かも動的にしか判らないのだから、
静的に保証できるものは何もないのでは。
なら zsh -n は何の役にたつの?
文法をチェックする… ただしパーザの挙動を変えるsetoptが起こる場合
結果は正しくない。起こるか否かも動的にしか判らないのだから、
静的に保証できるものは何もないのでは。
2019/08/01(木) 13:21:22.25
622はおそらく間違っている。
現在のオプションを参照するカレントシェルで動く文法チェッカがあれば、
$BUFFERの実行を伴わない文法チェックはできると思う。
setopt によるパーザの変更はひとつのコマンド行が終わった後に効くっぽいからだ。
二行のファイル
setopt ignore_close_braces
args(){ echo $# }
をsourceすると失敗するが、一行に結合してインタラクティブシェルから呼ぶと成功する。
現在のオプションを参照するカレントシェルで動く文法チェッカがあれば、
$BUFFERの実行を伴わない文法チェックはできると思う。
setopt によるパーザの変更はひとつのコマンド行が終わった後に効くっぽいからだ。
二行のファイル
setopt ignore_close_braces
args(){ echo $# }
をsourceすると失敗するが、一行に結合してインタラクティブシェルから呼ぶと成功する。
2019/08/01(木) 14:05:18.91
2019/08/01(木) 14:14:42.30
args(){ echo $# }
は ignore_close_braces がオンであろうがオフであろうが
そのオプションとは無関係に正しい文法
だからzsh -nでチェックすると正しい文法として扱われる
args(){ echo $# } という関数定義命令を実行すると、
パースエラーという "実行時エラー" が出る
「パースエラーなんだから、実行時エラーじゃないやい!」なんて理屈は通じない。
evalで変なコードを実行したらパースエラーになるだろ
実行時パースエラーというのものが存在する
dry-runである以上、実行時パースエラーを見つけることは不可能
zsh -nは間違ってる文法を「間違ってる文法」だと保証してくれるが
「正しい文法」だとは保証していない
は ignore_close_braces がオンであろうがオフであろうが
そのオプションとは無関係に正しい文法
だからzsh -nでチェックすると正しい文法として扱われる
args(){ echo $# } という関数定義命令を実行すると、
パースエラーという "実行時エラー" が出る
「パースエラーなんだから、実行時エラーじゃないやい!」なんて理屈は通じない。
evalで変なコードを実行したらパースエラーになるだろ
実行時パースエラーというのものが存在する
dry-runである以上、実行時パースエラーを見つけることは不可能
zsh -nは間違ってる文法を「間違ってる文法」だと保証してくれるが
「正しい文法」だとは保証していない
2019/08/01(木) 14:17:22.64
evalがある言語では ソースコードのパースも(一部は)実行時に行われる
dry-run=実行しない以上、実行時にしかわからないエラーを見つけられるわけがない。
dry-run=実行しない以上、実行時にしかわからないエラーを見つけられるわけがない。
2019/08/01(木) 14:19:19.08
ignore_close_braces オンで文法チェックしたいなら、
こうすればいいだけ
zsh -o ignore_close_braces -n
こうすればいいだけ
zsh -o ignore_close_braces -n
2019/08/01(木) 15:13:15.12
2019/08/02(金) 10:43:58.09
いやその理解はおかしい。構文チェックが二段階あるわけではない。
インタラクティブシェルでは実行時パースの単位はコマンド行の実行毎になるというだけ。
そのため$BUFFERのチェックに限っていえば、パースは一回なので、
途中でのパーザ変更は変数中に効果を発揮しない。故にドライランで構文チェックができる。
> args(){ echo $# }
> は ignore_close_braces がオンであろうがオフであろうが
> そのオプションとは無関係に正しい文法
ノー。zsh -o ignore_close_braces -n ... で判定するとエラーになる。zsh -n の機能は単に構文チェックするというだけ。
その例のようにパーサの変更がない区間での構文チェックで役にたつ。
アドバイスにおいて、レスをよく読まずに一般論でドヤ顔したり、相手の思考を妄想して叩くべきではない。
インタラクティブシェルでは実行時パースの単位はコマンド行の実行毎になるというだけ。
そのため$BUFFERのチェックに限っていえば、パースは一回なので、
途中でのパーザ変更は変数中に効果を発揮しない。故にドライランで構文チェックができる。
> args(){ echo $# }
> は ignore_close_braces がオンであろうがオフであろうが
> そのオプションとは無関係に正しい文法
ノー。zsh -o ignore_close_braces -n ... で判定するとエラーになる。zsh -n の機能は単に構文チェックするというだけ。
その例のようにパーサの変更がない区間での構文チェックで役にたつ。
アドバイスにおいて、レスをよく読まずに一般論でドヤ顔したり、相手の思考を妄想して叩くべきではない。
2019/08/02(金) 11:33:35.09
あとはこんなときとかに使えるね。
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 `)'
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 `)'
2019/08/02(金) 13:35:05.17
>>630
> いやその理解はおかしい。構文チェックが二段階あるわけではない。
二段階あるんじゃないよ。
-nによる構文チェックは実行せずに静的な構文チェックを行う。
実行しないから実行したら文法エラーになるようなものを見逃す。
通常の実行時は静的な構文チェックは行わずに、実行しながら構文チェックを行う
二段階あるんじゃなくて、二種類あるんだよ。
> いやその理解はおかしい。構文チェックが二段階あるわけではない。
二段階あるんじゃないよ。
-nによる構文チェックは実行せずに静的な構文チェックを行う。
実行しないから実行したら文法エラーになるようなものを見逃す。
通常の実行時は静的な構文チェックは行わずに、実行しながら構文チェックを行う
二段階あるんじゃなくて、二種類あるんだよ。
2019/08/02(金) 14:01:37.54
んで、話は最初に戻る
そもそも dryrunである以上、$BUFFER が実行できることなんて保証できない
setoptを含め、実行時にしかわからない情報に依存するものは
実行しないdryrunでわかるわけがない
そもそも dryrunである以上、$BUFFER が実行できることなんて保証できない
setoptを含め、実行時にしかわからない情報に依存するものは
実行しないdryrunでわかるわけがない
2019/08/02(金) 14:32:46.44
ノー。$BUFFER 実行時の構文チェックは一回だから
2019/08/02(金) 15:29:13.61
>>635
何いってんの?
$BUFFERに入ってるのはただのファイル名なんだけど?
zsh -n $BUFFER
構文チェックに通ったからと言って、実行したときに構文エラーが出ないとは限らない
なぜなら、zsh -nは実行したときの構文チェックとは別物だから。
何いってんの?
$BUFFERに入ってるのはただのファイル名なんだけど?
zsh -n $BUFFER
構文チェックに通ったからと言って、実行したときに構文エラーが出ないとは限らない
なぜなら、zsh -nは実行したときの構文チェックとは別物だから。
2019/08/02(金) 16:04:43.33
>>636
いや、man zshzle に書いてあるが zsh の変数 $BUFFER は
エディットバッファの中身を格納している。この値は zle のウィジェットから取得できるんだ。
コマンドラインに例えば echo hoo と入力して実行すると BUFFER='echo hoo' になる。
ウィジェットは自作もできて、好きなキーに bindkey 命令で紐づけて呼べる。
読み返して気付いたんだが、620 は書き間違いで
zsh -n -c $BUFFER
が正しい。
zsh スレだから当然BUFFERくらい知ってるよなと思っていて、会話が繋がっていったので疑いもしなかったんだが
これは完全に俺が悪いです。ごめんなさい。
いや、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 source ~/.zshrc を打とうとして source ~/.zsh_history を実行してしまった悲劇が話題になってた
これどう対策する?
これどう対策する?
2019/08/04(日) 07:28:41.73
>>638
具体的に何が問題なの?
具体的に何が問題なの?
2019/08/04(日) 08:14:57.90
https://qiita.com/stilo/items/90f6c6e308c85a4a9460
~/.zshrc を実行するつもりがタブ補完などをスリップしてしまい .zsh_history を実行していまう。
するとヒストリファイル($HISTFILE == .zsh_history)に書かれた過去に実行したコマンドが、順番に source コマンドによって読み込まれて実行される。
記事で紹介されている事故では途中で止められる機会があったから良いものの、運が悪ければ不可逆的・破壊的コマンドが走り重要な情報を含んでるかもしれない現環境がズタズタになる。
~/.zshrc を実行するつもりがタブ補完などをスリップしてしまい .zsh_history を実行していまう。
するとヒストリファイル($HISTFILE == .zsh_history)に書かれた過去に実行したコマンドが、順番に source コマンドによって読み込まれて実行される。
記事で紹介されている事故では途中で止められる機会があったから良いものの、運が悪ければ不可逆的・破壊的コマンドが走り重要な情報を含んでるかもしれない現環境がズタズタになる。
2019/08/04(日) 09:04:01.96
ヒストリ先頭に予め終了命令を入れておくという技をtwitterでみた。
手作業だと忘れそうなので、.zshrc にこういうのを書いておけばいいかな。
< $HISTFILE | { mv $HISTFILE{,.bak}; sed '1{/return 1/!i\
echo '"'"'Cannot source `'$HISTFILE'`, Abort.'"'"' >&2;return 1
;}' > $HISTFILE ;} && rm $HISTFILE.bak
手作業だと忘れそうなので、.zshrc にこういうのを書いておけばいいかな。
< $HISTFILE | { mv $HISTFILE{,.bak}; sed '1{/return 1/!i\
echo '"'"'Cannot source `'$HISTFILE'`, Abort.'"'"' >&2;return 1
;}' > $HISTFILE ;} && rm $HISTFILE.bak
2019/08/04(日) 09:05:51.31
>>640
リンク先読んでないけど、それコマンド確認しないでEnter押しちゃ何だってトラブルの元だよね
補完offにしとくか、HISTSIZEを2-3ぐらいにしとけば
設定ファイル編集した後に読み込むならsource !$<tab>でもいいんだし
リンク先読んでないけど、それコマンド確認しないでEnter押しちゃ何だってトラブルの元だよね
補完offにしとくか、HISTSIZEを2-3ぐらいにしとけば
設定ファイル編集した後に読み込むならsource !$<tab>でもいいんだし
2019/08/04(日) 09:15:19.48
2019/08/04(日) 09:25:34.17
2019/08/04(日) 11:29:09.41
これで行けるわ
zstyle ':completion:*' ignored-patterns '.zsh_history'
.zshrc あたりに追加すればいい
zstyle ':completion:*' ignored-patterns '.zsh_history'
.zshrc あたりに追加すればいい
2019/08/04(日) 12:10:26.35
書き直した。ヒストリのバックアップは別でやるべきだわ
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 だけに限定するのは難しいだろうか
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 だけに限定するのは難しいだろうか
2019/08/04(日) 12:18:01.65
>>646
historyとどう違うの
historyとどう違うの
2019/08/04(日) 12:52:07.02
>>647
fc のこと? history == fc -l で、リストアップに限定したコマンド。
fc のこと? history == fc -l で、リストアップに限定したコマンド。
2019/08/04(日) 13:01:33.64
問題の対策は他にもEnterキーのアクションである accept-line ウィジェットを置き換えるとか、
コマンドライン実行前に呼ばれる preexecフックとかで止める方法がある。後者は記事のブックマークコメントの先で紹介されてた。
でも言われてた通り機構をあらたに作る必要があって煩雑になるし、その辺は元々弄りたい需要が多すぎるのでただでさえゴチャついてるところに手を入れがたい。
インタラクティブシェルだけ source を関数で置き換える方針はどうだろう。
.zsh_historyが引数のときだけ実行を警告するように。これも軽い修正になってよさそうじゃないかな
コマンドライン実行前に呼ばれる preexecフックとかで止める方法がある。後者は記事のブックマークコメントの先で紹介されてた。
でも言われてた通り機構をあらたに作る必要があって煩雑になるし、その辺は元々弄りたい需要が多すぎるのでただでさえゴチャついてるところに手を入れがたい。
インタラクティブシェルだけ source を関数で置き換える方針はどうだろう。
.zsh_historyが引数のときだけ実行を警告するように。これも軽い修正になってよさそうじゃないかな
2019/08/04(日) 13:50:19.73
source ~/.zshrcはエイリアスに入れてるわ
これで誤爆の心配もないね!
これで誤爆の心配もないね!
2019/08/04(日) 13:56:32.83
>>650
エイリアスは忘れちゃわない?
エイリアスは忘れちゃわない?
2019/08/04(日) 14:02:16.19
>>648
いや history じゃなくてわざわざ tail .zsh_history を使うのってどういう時なの?
何にせよ .zsh_history を開きたいときは command $HISTFILE<tab> でもいいと思うけど
いや history じゃなくてわざわざ tail .zsh_history を使うのってどういう時なの?
何にせよ .zsh_history を開きたいときは command $HISTFILE<tab> でもいいと思うけど
2019/08/04(日) 14:09:43.14
>>651
確かに忘れるけど、セーフティ的な意味なら充分役立ってくれるかなと思って……
確かに忘れるけど、セーフティ的な意味なら充分役立ってくれるかなと思って……
2019/08/04(日) 14:15:12.35
2019/08/04(日) 18:43:47.12
HISTFILE=~/.zsh/history_zsh
って感じで場所と名前変えてる
って感じで場所と名前変えてる
2019/08/04(日) 20:08:58.07
ZSHを使わない
658名無しさん@お腹いっぱい。
2019/08/18(日) 23:52:53.56 zshクソ。誰もが使いそうな変数名を特殊扱いすんな
statusとかpathとかsecondsとか
statusとかpathとかsecondsとか
2019/08/19(月) 00:28:59.18
parametersとoptionsもあった
2019/10/19(土) 20:04:44.61
遅レスですまないけど、.zhistoryって行頭が:になってるからsourceしてもスルーするんじゃないの?
:って何もしないって機能だよね
:って何もしないって機能だよね
2019/10/20(日) 18:48:22.54
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
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.23663名無しさん@お腹いっぱい。
2019/10/22(火) 13:37:43.51 まあ、: コマンド自体が何もしないってのはそのとおりだけど
一行全体で見ると、引数部分を実行するという話
一行全体で見ると、引数部分を実行するという話
2019/10/23(水) 06:15:25.06
:はなにもしないし引数をすべて無視するけどシェルが:の引数と解釈しなかった部分が実行される
よって;とか&&とか$()とか<()とかいろいろ実行される
よって;とか&&とか$()とか<()とかいろいろ実行される
2019/10/26(土) 21:27:09.03
: を使うシーンって何?
意味は知ってたが使ったことない
意味は知ってたが使ったことない
666名無しさん@お腹いっぱい。
2019/10/26(土) 22:13:29.87 >>665
変数の代入と停止の無効化
変数の代入と停止の無効化
2019/10/26(土) 22:58:50.57
>>665
trueの代わり
trueの代わり
2019/10/26(土) 23:55:09.51
>>665
ファイルサイズを0にする
ファイルサイズを0にする
669665
2019/10/27(日) 00:54:52.87 そういや普通にwhile : ;do〜みたいに手癖で使ってたわ
あと昔書いてたシェルスクリプトでも冒頭でset -eを設定しておきつつ
エラーで止まってほしくない箇所で : を使ってた
てかzsh関係ないですねすんません
あと昔書いてたシェルスクリプトでも冒頭でset -eを設定しておきつつ
エラーで止まってほしくない箇所で : を使ってた
てかzsh関係ないですねすんません
2019/11/10(日) 00:49:14.12
zshが馴染みすぎるとbash、それも素の設定を使わざるを得ない状況になるとストレスがすごいよね
鯖缶の方とかそういうシチュエーション多そうだけどどうやって折り合いつけてるんだろう
鯖缶の方とかそういうシチュエーション多そうだけどどうやって折り合いつけてるんだろう
671名無しさん@お腹いっぱい。
2019/11/10(日) 15:56:08.74 >>670
zshは基本入ってないんで、bashに戻りつつあるw
zshは基本入ってないんで、bashに戻りつつあるw
2019/11/10(日) 23:38:07.15
自作のZpluginプラグインのほぼ全てが壊れたまま運用していて、
むしろスッピンより不便なはずだが、何も感じなくなってしまった
インタラクティブ環境は、慣れやすいものなのかも
むしろスッピンより不便なはずだが、何も感じなくなってしまった
インタラクティブ環境は、慣れやすいものなのかも
2019/11/13(水) 00:02:51.13
Macのデフォルトシェル採用って結構影響でかいような
問題なければ追従するUnixやLinuxの鳥も出てくるじゃないかと
問題なければ追従するUnixやLinuxの鳥も出てくるじゃないかと
674名無しさん@お腹いっぱい。
2019/11/13(水) 03:58:48.06 それはないなー
bashとの互換性がね。shwordsplit、あれが最悪だね。
理屈はわかるんだけどね。互換性の点から見れば最悪。
うん。互換モードはあるよ。でもデフォルトじゃないんで代替にできない。
そこまでして変える必要性がない。
bashとの互換性がね。shwordsplit、あれが最悪だね。
理屈はわかるんだけどね。互換性の点から見れば最悪。
うん。互換モードはあるよ。でもデフォルトじゃないんで代替にできない。
そこまでして変える必要性がない。
675名無しさん@お腹いっぱい。
2019/11/13(水) 04:02:15.99 そもそもさ、みんな潔癖だからね。POSIX準拠。そっち優先。
debianとかubuntuは bashよりも機能が低いdashとかにしようとしてるぐらい
ログインシェルはまあ自由に使っとくれって感じだろうけど
デフォルトシェルはPOSIX準拠。これ一択なんでzshにはならんよ
遅いしね。
debianとかubuntuは bashよりも機能が低いdashとかにしようとしてるぐらい
ログインシェルはまあ自由に使っとくれって感じだろうけど
デフォルトシェルはPOSIX準拠。これ一択なんでzshにはならんよ
遅いしね。
676名無しさん@お腹いっぱい。
2019/11/13(水) 04:03:39.70 Macのログインシェルは、はたから見ると、あぁ可哀想
bashのライセンスが受け入れられなかったから
消去法でzshなんだね。ぐらいにしか思ってない。
zshを選びたくて選んだなんて誰も思ってないんだよ。
bashのライセンスが受け入れられなかったから
消去法でzshなんだね。ぐらいにしか思ってない。
zshを選びたくて選んだなんて誰も思ってないんだよ。
2019/11/14(木) 17:48:54.18
zshで何も困らない
強いて言うならQiitaとかのzsh初めて使った人の記事が初心者すぎて目障りなくらいw
強いて言うならQiitaとかのzsh初めて使った人の記事が初心者すぎて目障りなくらいw
2019/11/16(土) 03:47:19.45
Macユーザのウザさ、もとい声のデカさを信じようじゃないか
2020/05/01(金) 03:17:08.65
plugin managerをzinitに変えたら起動が爆速になった
オススメ
オススメ
680名無しさん@お腹いっぱい。
2020/05/03(日) 05:08:47.72 単なる興味なんですがzshの2系より前って手に入らないですかね?
681名無しさん@お腹いっぱい。
2020/05/03(日) 05:09:03.16 2系を含みます
2020/05/03(日) 08:13:07.84
zshの2系、やっと見つかりました。
https://web.archive.org/web/19990828203220/http://www.cs.elte.hu/pub/zsh/old/?919318967
https://web.archive.org/web/19990828203220/http://www.cs.elte.hu/pub/zsh/old/?919318967
683名無しさん@お腹いっぱい。
2020/05/05(火) 22:51:09.69 zshにBASH_ENVに相当する機能はありますか?
つまりzshでシェルスクリプトを非対話型で実行した時に
任意の処理を先立って実行したいのです。
つまりzshでシェルスクリプトを非対話型で実行した時に
任意の処理を先立って実行したいのです。
684名無しさん@お腹いっぱい。
2020/05/06(水) 07:12:37.95 >>683
~/.zshenv かな
http://zsh.sourceforge.net/Doc/Release/Files.html
スクリプト実行時に限らず対話シェル起動時にも読まれるけど
INTERACTIVEオプションの状態をチェックするifで括ればよさそう
if [[ ! -o INTERACTIVE ]]; then
echo non-interactive
fi
~/.zshenv かな
http://zsh.sourceforge.net/Doc/Release/Files.html
スクリプト実行時に限らず対話シェル起動時にも読まれるけど
INTERACTIVEオプションの状態をチェックするifで括ればよさそう
if [[ ! -o INTERACTIVE ]]; then
echo non-interactive
fi
2020/05/06(水) 08:45:36.51
>>684
ありがとうございます
既存の ~/zshenvは修正できないという制約があるのでINTERACTIVEの
チェックは出来ませんが、ZDOTDIRを書き換えればなんとかなりそうなきがします
つまりBASH_ENVをセットして起動の代わりに
/tmp以下に一時的にファイルを作ってZDOTDIRをセットして実行
初期化処理の中で一時ファイルを削除したりZDOTDIRを元に戻したりとかです
ありがとうございます
既存の ~/zshenvは修正できないという制約があるのでINTERACTIVEの
チェックは出来ませんが、ZDOTDIRを書き換えればなんとかなりそうなきがします
つまりBASH_ENVをセットして起動の代わりに
/tmp以下に一時的にファイルを作ってZDOTDIRをセットして実行
初期化処理の中で一時ファイルを削除したりZDOTDIRを元に戻したりとかです
686名無しさん@お腹いっぱい。
2020/05/10(日) 02:59:44.09 10より大きいファイルディスクリプタを使うにはどうすればいいの?
687名無しさん@お腹いっぱい。
2020/05/10(日) 03:14:41.32 事後怪傑しました!
688名無しさん@お腹いっぱい。
2020/06/09(火) 19:06:54.37 あー、もうやだ、クソzsh。なんでこんなこともできねーんだよクソ
しかも5.5?ぐらいから挙動変わってるし、バグなんかこれ
changelogみてもなにもわからねーしー、どうすればちゃんと取得できるんだよ
しかも5.5?ぐらいから挙動変わってるし、バグなんかこれ
changelogみてもなにもわからねーしー、どうすればちゃんと取得できるんだよ
2020/06/09(火) 21:59:20.23
クソなレス
690名無しさん@お腹いっぱい。
2020/06/09(火) 22:18:51.92 うるせーばーか、こっちはzshがクソで困ってるんだ
bashの方がいいな
bashの方がいいな
2020/06/10(水) 01:10:37.06
好きなの使えよ
2020/06/10(水) 06:47:54.01
何がやりたいのかさっぱりなうんこだな
2020/06/16(火) 00:13:26.25
zshは機能が多すぎて覚えられない
お勧め設定をAI的に徐々に教えてくれたらいいのに
「そのやり方、こんなふうにもできますよ?次回からこうします?」って
お勧め設定をAI的に徐々に教えてくれたらいいのに
「そのやり方、こんなふうにもできますよ?次回からこうします?」って
694名無しさん@お腹いっぱい。
2020/06/28(日) 06:13:09.19 fishどう?
2020/06/28(日) 08:33:56.89
色付きとか好きじゃないので俺はあんまり
696名無しさん@お腹いっぱい。
2020/06/28(日) 08:56:18.58 互換性を切り捨ててるものは結局デフォルトになることはないしね
zshも互換性が完璧とは言えないから驚かれたぐらい
bashがライセンス上の都合で選択できない以上どうしようもなかったんだろうが
zshも互換性が完璧とは言えないから驚かれたぐらい
bashがライセンス上の都合で選択できない以上どうしようもなかったんだろうが
2020/07/02(木) 16:31:10.99
Gay fish YO!
2020/07/07(火) 04:27:47.52
下記はとある本にのってる zsh のプロンプトの設定なんですが、一番右の % はなんなのでしょうか?
いらない気がするのですが? 誤植?
# プロンプトの右はじに、false なら終了ステータスを表示。
RPS1="%(?..(%?%))"
いらない気がするのですが? 誤植?
# プロンプトの右はじに、false なら終了ステータスを表示。
RPS1="%(?..(%?%))"
699名無しさん@お腹いっぱい。
2020/07/07(火) 06:07:17.79 >>698
%( に対応する閉じ括弧だと解釈されるのを防ぐエスケープ
%( に対応する閉じ括弧だと解釈されるのを防ぐエスケープ
2020/07/07(火) 15:42:07.86
ksh にすればいいのに()
2020/07/07(火) 20:58:59.88
Mortal Shell のオープンβテスト開始!
zsh から乗り換えよう!
https://news.yahoo.co.jp/articles/5742b9e2bf4c61014a5788631b1c98de8a886eb0
zsh から乗り換えよう!
https://news.yahoo.co.jp/articles/5742b9e2bf4c61014a5788631b1c98de8a886eb0
2020/07/07(火) 22:09:19.90
>>700
kshはメンテも終わった終わったシェルだから
kshはメンテも終わった終わったシェルだから
2020/07/08(水) 00:17:05.82
2020/07/08(水) 00:49:54.46
2020/07/08(水) 00:51:09.23
>>704
zshはコード自体は全く別物だったか。フォークという派生とはちょっと違うか
zshはコード自体は全く別物だったか。フォークという派生とはちょっと違うか
2020/07/08(水) 16:15:54.16
command.com 最強!
2020/07/08(水) 17:28:21.63
最凶
最凶と呼べるほどにもない全然 使えない おもちゃか
最凶と呼べるほどにもない全然 使えない おもちゃか
708名無しさん@お腹いっぱい。
2020/07/09(木) 15:06:08.46 パッケージ: ksh (2020.0.0+really93u+20120801-6)
https://packages.debian.org/bullseye/ksh
これはksh2020なのか93uなのか
https://packages.debian.org/bullseye/ksh
これはksh2020なのか93uなのか
2020/07/09(木) 15:12:23.68
Debian offers ksh2020[20] in its testing version.[21]
2020/10/14(水) 06:23:19.65
ksh2020は完全に放棄されてんな
ASTからバグフィックスのためだけにフォークしたおじいちゃんが一番地道に現在活動的
ASTからバグフィックスのためだけにフォークしたおじいちゃんが一番地道に現在活動的
2020/11/04(水) 19:33:06.67
これなんなの?
https://github.com/ksh2020/ksh
https://github.com/ksh2020/ksh
2020/11/05(木) 00:19:08.19
>>711
>>704
AT&Tからフォークしてあくまでもメンテナンスだけを現在熱心にやってるのは
https://github.com/ksh93/ksh
かな。それの冒頭に>>711のことも書いてる
>>704
AT&Tからフォークしてあくまでもメンテナンスだけを現在熱心にやってるのは
https://github.com/ksh93/ksh
かな。それの冒頭に>>711のことも書いてる
2020/11/05(木) 08:03:32.52
一体いくつあるんだよw
オリジナルはまあいいとして
そこからの派生
オリジナルはまあいいとして
そこからの派生
2020/11/05(木) 13:49:41.45
オリジナル : 頓挫、終了
オリジナルのちゃんとしたメンテ : 無い、まだ無い
色々やった 2000 : 頓挫
地道に一人で : 地道に継続中
だけだよ。てか、いい加減過疎ってる ksh スレに行けよw zshなんも関係ないぞ
オリジナルのちゃんとしたメンテ : 無い、まだ無い
色々やった 2000 : 頓挫
地道に一人で : 地道に継続中
だけだよ。てか、いい加減過疎ってる ksh スレに行けよw zshなんも関係ないぞ
2020/11/05(木) 13:52:24.25
色々やった 2020
ね
ね
2020/12/09(水) 09:17:20.05
717名無しさん@お腹いっぱい。
2020/12/11(金) 13:03:32.872020/12/11(金) 15:05:10.75
zshで拡張した部分を使えば便利だが、zshしか使えない体になってしまうからなw
719名無しさん@お腹いっぱい。
2021/01/03(日) 01:20:30.63 MacでCUIアプリをダブルクリックした際の挙動と、
インタラクティブシェルで起動した際の挙動を変えたいのだけれどフラグとなる
環境変数がなになのかわからん。
インタラクティブシェルで起動した際の挙動を変えたいのだけれどフラグとなる
環境変数がなになのかわからん。
2021/01/03(日) 04:34:42.56
どちらかで変わるわけ無いやろ
721名無しさん@お腹いっぱい。
2021/01/03(日) 19:34:32.29 >>720
やっぱりそうですかわかりました。
やっぱりそうですかわかりました。
2021/01/05(火) 10:19:41.81
bashしか使ったことなかったけど
Macがzshなものでドキュメントみてたけど
ページ量多すぎだろ
Macがzshなものでドキュメントみてたけど
ページ量多すぎだろ
2021/01/05(火) 10:50:40.81
機能が豊富ですから
機能が豊富なzsh固有のに慣れてしまうと他が使えない体質になりそうで使わないけどw
機能が豊富なzsh固有のに慣れてしまうと他が使えない体質になりそうで使わないけどw
2021/01/10(日) 11:20:57.77
誰もいない海だ
725名無しさん@お腹いっぱい。
2021/01/24(日) 12:55:43.62 ここzshの本スレですか?随分人いないですね。
どこか別にコミュニティあるんですか?
どこか別にコミュニティあるんですか?
2021/01/25(月) 16:57:13.71
2021/01/25(月) 18:29:50.97
oh my zshとかzinitってなんのために使うんだろう?
プロンプト決めるだけでしょ?
プロンプト決めるだけでしょ?
2021/01/30(土) 13:28:04.12
一通り環境作り上げて不満なくなると更新とか動向全くチェックしなくなってしまう
せめて数年に一度は見直さないといかんわな
この腰の重さは老化のバロメータか
せめて数年に一度は見直さないといかんわな
この腰の重さは老化のバロメータか
2021/03/30(火) 01:24:21.91
人が書いたやつはちゃんと追いかけておかないといつまにか別物になってる可能性があるな
2021/07/06(火) 23:56:33.91
もう一年も更新ねーじゃん
ついにオワコンかzsh
ついにオワコンかzsh
2021/07/07(水) 06:04:31.45
お前のようにここに書くようなネタが無いだけ
使ってるヤツはそれなりにいる
5chだけが世界の全てのお前にはわからんだろうけど
使ってるヤツはそれなりにいる
5chだけが世界の全てのお前にはわからんだろうけど
2021/07/07(水) 06:13:11.87
zshのそのものの更新が一年無いって話か
それでオワコンだって言ってるのか
それもまたあたおかな発想だな
それでオワコンだって言ってるのか
それもまたあたおかな発想だな
2021/07/08(木) 03:40:04.43
unix板らしからぬ脊髄反射w
2021/08/11(水) 01:59:23.33
https://news.mynavi.jp/itsearch/series/devsoft/powershell_core_-.html
これ見ながらpowershellを普段のzshのようにしようかと企んだけど途中でアホ臭くなってやめた
ちっとも好きになれんわpowershell
これ見ながらpowershellを普段のzshのようにしようかと企んだけど途中でアホ臭くなってやめた
ちっとも好きになれんわpowershell
2021/08/29(日) 19:58:48.95
普段のユーザとしては zsh と (pd)ksh しか使ってない。
tcsh から乗り換えて zsh はもう17年だよ…
そろそろ bash 勉強しなきゃダメかな…
tcsh から乗り換えて zsh はもう17年だよ…
そろそろ bash 勉強しなきゃダメかな…
2021/12/19(日) 14:28:58.73
zsh を Mac のデフォルトシェルとして使う
https://support.apple.com/ja-jp/HT208050
macOS Catalina から、Mac は zsh をデフォルトのログインシェルおよびインタラクティブシェルとして使うようになります。
それ以前のバージョンの macOS でも、zsh をデフォルトにすることができます。
https://support.apple.com/ja-jp/HT208050
macOS Catalina から、Mac は zsh をデフォルトのログインシェルおよびインタラクティブシェルとして使うようになります。
それ以前のバージョンの macOS でも、zsh をデフォルトにすることができます。
2022/03/26(土) 01:00:13.42
2022/04/14(木) 10:56:14.78
ZLE使えばコマンドライン入力を編集できますが、
ZLEウィジェットとして登録した関数を直接呼び出して zle を呼び出すとエラーが発生します。
外部からコマンドラインを編集する方法はないのでしょうか?
ZLEウィジェットとして登録した関数を直接呼び出して zle を呼び出すとエラーが発生します。
外部からコマンドラインを編集する方法はないのでしょうか?
739名無しさん@お腹いっぱい。
2022/06/14(火) 14:22:28.69 UNIXシェルの並列化により最大34倍高速化する「PaSh」
https://www.itmedia.co.jp/news/spv/2206/14/news050.html
https://www.itmedia.co.jp/news/spv/2206/14/news050.html
2022/07/12(火) 17:18:44.41
pashなんてあるのか
いい感じならzshもパクってくれ
いい感じならzshもパクってくれ
2023/05/14(日) 13:48:22.62
どうでもいい
2024/01/13(土) 01:06:11.34
psprint死んだらしいな
Rest in Hell
Rest in Hell
743名無しさん@お腹いっぱい。
2024/03/27(水) 19:33:41.03 あれは歯が合わなくても保険等級が下に力が入ったのに
そういう
本当にアンチだと思われたいんだろうな
ハムはなんで今更貼るの?
今買えの馬鹿も何もしないかぎり騒がんだろうな
そういう
本当にアンチだと思われたいんだろうな
ハムはなんで今更貼るの?
今買えの馬鹿も何もしないかぎり騒がんだろうな
744名無しさん@お腹いっぱい。
2024/03/27(水) 21:05:18.12 リバウンドせずに大風呂敷広げるからこんなもんでもないままだろうね。
「もう少し待っといて昔の人気漫画だから若い子は食いつかないもんなの
求めないから実質ずっと雨なんだが
やってることは結局すぐダメになると思うが
「もう少し待っといて昔の人気漫画だから若い子は食いつかないもんなの
求めないから実質ずっと雨なんだが
やってることは結局すぐダメになると思うが
745名無しさん@お腹いっぱい。
2024/03/27(水) 21:42:33.04 キチガイ荒らしてるって事だ
そういう訳では
そういう訳では
2024/03/30(土) 23:36:02.54
zshの生成AI系サジェストってないの?
そろそろ出てきていいように思う
そろそろ出てきていいように思う
747名無しさん@お腹いっぱい。
2025/02/18(火) 00:39:33.59 zshのshell scriptなんですけど
fn() {
arg1=$1
echo $arg1
}
hoge='abc 123'
t=$(fn $hoge)
echo $#t
2
となるんだけど
どうも半角スペースで分解されてる
半角スペースをエスケープする方法教えて
もう涙目
fn() {
arg1=$1
echo $arg1
}
hoge='abc 123'
t=$(fn $hoge)
echo $#t
2
となるんだけど
どうも半角スペースで分解されてる
半角スペースをエスケープする方法教えて
もう涙目
2025/02/18(火) 02:02:22.21
$( )全体をダブルクオートでくくる
2025/02/18(火) 02:53:28.36
いやまてzshは括らなくても分割されないはず、と手元で>>747を実行したら2ではなく7になったぞ?
レスを投稿する
ニュース
- 【工作員】「X」のアカウント所在地公開機能が暴いた世論操作の実態 MAGA支持著名アカウントの多くが米国外から運営 日本にも波及 ★2 [ごまカンパチ★]
- 【・(ェ)・】「くまちゃんがいた」散歩中の2歳園児が発見 クリ林に1頭のクマ…保育士「ワンちゃんだね…」と声かけて移動 [Ailuropoda melanoleuca★]
- 【大阪】日本一高い観覧車が落雷で緊急停止 約20人乗客が閉じ込められ9時間にわたり救助活動 [七波羅探題★]
- 【芸能】人気ゲーム実況者が一定期間の活動休止を発表「彼女以外の女性複数人と関係を持った」 [湛然★]
- ラピダス、第2工場建設でも見えぬ顧客 技術開発も難題山積 [蚤の市★]
- 【芸能】安達祐実 44歳の最新姿「ぇーーーーー!!!」「声出た」「なんなの」「まって」「ワオ」 [湛然★]
- 【悲報】小野田紀美「私のドレスは日本の正礼装なんだが?ダサいと言ってるやつは日本文化を否定し国内ブランドを貶したいのか?」 [802034645]
- たぬかなはん、ちょっとクズすぎなんじゃね? [267550838]
- 【悲報】『たぬかな』ファンのホビット、絶望「こうして36歳年収650万円身長155cmの底辺独身男性が残りましたとさ…どうすればいいんだよ [257926174]
- 高市ジャパン、核融合開発に1千億円の超大規模投資!これで日本の未来は安泰だね [668970678]
- 日経「ギャー!中国がおやびんと高市さんの仲を引き裂こうとしてる!」中国、台湾問題で日米の分断狙う [834922174]
- まんこライン丸見えのぴっちりレギンスなど、アスレチックとレジャーを融合させた『アスレジャー』というファッションジャンルが流行 [377482965]
