[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2ch.scのread.cgiへ]
Update time : 07/20 17:40 / Filesize : 182 KB / Number-of Response : 751
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

zsh その7



1 名前:名無しさん@お腹いっぱい。 [2012/05/24(木) 16:34:43.03 .net]
zshについて語るスレ

www.zsh.org/
zsh.sourceforge.net/

・過去ログ
zsh その6
toro.2ch.net/test/read.cgi/unix/1229010860/
zsh その5
pc11.2ch.net/test/read.cgi/unix/1212677877/
zsh その4
pc11.2ch.net/test/read.cgi/unix/1107342206/
zsh その3
pc5.2ch.net/test/read.cgi/unix/1080002786/
zsh入門 パート2
pc3.2ch.net/test/read.cgi/unix/1036324177/
zsh入門
pc.2ch.net/test/read.cgi/unix/990283346/

18 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/22(金) 22:45:25.39 .net]
普通にワイルドカードでしょ。

19 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/22(金) 23:26:21.98 .net]
>>17
setopt noglob かな。なんでそんなもん set してんのかしらんけど。

20 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/23(土) 07:33:49.35 .net]
>>19
それだとワイルドカード自体効かなくなるから、
setopt nonomatch かと。

21 名前:13 mailto:sage [2012/06/23(土) 12:22:12.38 .net]
>>14
ありがとうございます。
いままでのRPROMPTをそのままつっこんでも今のところ特に問題なく動きました。
いろいろ確認してみましたが問題なさげです。

22 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/23(土) 14:09:40.51 .net]
>>20
効かないからそのまま出るんだろって思ったけど、「なんで〜」に対する答か。
確かに noglob より nonomatch を設定していると考える方が自然だ。

23 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/23(土) 15:12:00.69 .net]
>>21
よく考えたら PROMPT に含める方が一般的だったかも。
>>14 の方が簡単な気はするけど。

24 名前:13 mailto:sage [2012/06/24(日) 12:04:00.45 .net]
たびたびすいません。Emacs+multi-termだと崩れてました。
普段のkonsoleなら問題なかったのですが。

25 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/24(日) 15:29:14.48 .net]
それは multi-term の問題では。
どう崩れるのかしらんけど。

26 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/26(火) 22:49:57.86 .net]
bindkey で Ctrl+@ や Ctrl+- を設定したいんですが、 どうやればいいんでしょうか?
"^@" や "^-" では駄目でした。




27 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/26(火) 23:06:25.29 .net]
^@ は普通それでいい。できないなら端末の問題かな。^- というコードはない。
xxd があればその入力にそれぞれ打ち込んでみるといい。
何か分かるかもしれない。

28 名前:26 mailto:sage [2012/06/30(土) 21:05:11.42 .net]
>>27
端末の問題ですか・・・puttyごった煮版ですがこれが悪いのかな。
@単発なら \@ でできたのですが、 ^\@ はやはり駄目でした。

29 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/03(火) 21:32:24.19 .net]
\@ って bindkey \@ foo ってこと?
@ なら bindkey @ foo でいいけど。

xxd がなければ ESC-x describe-key-briefly ^@ ってやれば一応入力キーは判るよ。
あと Ctrl-- も端末で適当なコードが入るようにすれば、それに bindkey して使えるよ。
putty でどうやるのかしらんけど。

30 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/03(火) 22:48:13.11 .net]
そういえば今は 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

とかいう設定はとっくに不要になってんだよなあ。

31 名前:名無しさん@お腹いっぱい。 [2012/07/15(日) 14:52:02.96 .net]
文字入力の補完はできますか?
emacsのようにどこかに補完リストを作っておいて、
たとえば、
ssh lo[補完キー]と入力すると、
ssh longname.com
と変換されるようにしたいのですが。


32 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/15(日) 14:56:10.33 .net]
できます

33 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/15(日) 15:11:50.45 .net]
sshならデフォルトで~/.ssh/configをもとに補完してくれるはずだけどな

34 名前:31 mailto:sage [2012/07/15(日) 15:25:23.25 .net]
できました。
すみません。なぜか出来ないと思い込んでいました。

35 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/19(木) 20:31:24.41 .net]
使い始めたばかりの初心者なのだけれども、alias -g L='| $PAGER ' でヒストリに L のまま残るのが嫌。
ヒストリには | less と展開して残すか、Lに続けてtabを押したら | less と展開するようにはできないだろうか。



36 名前:35 mailto:sage [2012/07/19(木) 20:48:45.96 .net]
自己解決。
homepage1.nifty.com/blankspace/zsh/zsh.html
を使えばいいのね。



37 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/22(日) 00:03:39.42 .net]
ls とか less hogehoge をヒストリに残さないようにするためにはどうしたらいいんだろ。

38 名前:名無しさん@お腹いっぱい。 [2012/07/22(日) 01:09:18.09 .net]
setopt hist_ignore_space
alias ls=' ls'


39 名前:37 [2012/07/22(日) 02:59:09.18 .net]
>>38
おお、なるほど。これはいい。

40 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/22(日) 15:44:35.87 .net]
zsh 5.0.0 available
www.zsh.org/mla/users/2012/msg00495.html

41 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/22(日) 18:14:30.56 .net]
うむ

42 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/25(水) 21:36:44.74 .net]
5.0がでたってのにぜんぜんもりあがらないな。

43 名前:名無しさん@お腹いっぱい。 [2012/07/25(水) 21:57:41.95 .net]
使うヒトは当たり前のように開発版の4.3使っていて、
5は4.3のバージョンだけ付け替えたようなものだから
目立った変化がない。


44 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/25(水) 22:32:53.87 .net]
まさか正式リリースで5.0になるとは…4.4だと思ってたのに

45 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/25(水) 23:12:32.02 .net]
まあ、linuxのカーネルが3.0になったからってなんてことはなかったのと一緒か。

46 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/28(土) 00:02:42.74 .net]
4.3 って開発版だったっけ?そうだった気もするな



47 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/28(土) 00:09:42.18 .net]
>>46
少なくとも4系は4.xのxが偶数がリリース版だった、はず

48 名前:名無しさん@お腹いっぱい。 [2012/07/28(土) 03:21:52.56 .net]
5のリリースメールから引用

> Version 5.0.0 of zsh is the new stable release. There are many changes
> since the last stable release series, 4.2, イカリャク


49 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/28(土) 12:32:34.28 .net]
Debianでは4.3系を長らく使ってるから開発版って認識は薄かったなぁ
(zsh-betaってのもあるのにzshの方が4.3.10)

50 名前:名無しさん@お腹いっぱい。 [2012/07/28(土) 12:52:30.74 .net]
macportsも、よくわかってないヒトがメンテしてるのかな。

zsh @4.2.7 (shells)
zsh-devel @5.0.0 (shells)


51 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/28(土) 13:55:20.23 .net]
パッケージのdevelとかbetaってのはソフトウェア自体の安定版/開発版だのとはまた別の基準でつけられるものでしょ
安定性重視のシステムで安定パッケージと認められるためにはそれなりのテストや議論を経てこれなら大丈夫って認められる必要があるんじゃね、しらんけど

52 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/28(土) 14:24:13.58 .net]
hoge-develって、実行時には必要ないincludeファイルとかだけをまとめたパッケージだろ。
本体パッケージとバージョンは同じじゃないといけない、しらんけど

53 名前:名無しさん@お腹いっぱい。 [2012/07/28(土) 14:32:40.96 .net]
>>52
それredhatのRPM

54 名前:名無しさん@お腹いっぱい。 [2012/07/28(土) 14:39:12.82 .net]
5が出る直前は
zsh @4.2.7 (shells)
zsh-devel @4.3.17 (shellls)
だったね。

55 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/28(土) 19:56:17.51 .net]
devel ってか head 的な?

56 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/28(土) 20:01:47.83 .net]
stableとunstable的な



57 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/30(月) 03:31:08.03 .net]
>>52
devel=正式以外含めた最新版だと思ってる人が多いとけど実際はその認識でも間違いはない感じ
名前通り開発する人が必要なものが追加されてる版、なのでバージョンも含めていろいろ試せるように最新なのが普通

商業用だったりディストリ毎のルールとかもあるから一概にはいえないけど

58 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/03(金) 21:05:43.37 .net]


59 名前:名無しさん@お腹いっぱい。 [2012/08/05(日) 00:53:22.29 .net]
zshって、コマンド内にコメント含められないの?bashだとできるのに。
ls -al#a
みたいな。

60 名前:名無しさん@お腹いっぱい。 [2012/08/05(日) 01:36:11.72 .net]
setopt interactive_comments
対話環境(スクリプトではない、プロンプトが出る環境)でコメントを機能させる


61 名前:59 [2012/08/05(日) 02:18:34.27 .net]
おお、そんなオプションが。ありがとうございます

62 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/08(水) 10:45:37.83 .net]
test

63 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/08(水) 10:49:20.39 .net]
test

64 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/08(水) 11:10:55.60 .net]
こっちで。

[test] 書きこみテスト 専用スレッド 11 [テスト]
toro.2ch.net/test/read.cgi/unix/1316244666/

65 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/08(水) 15:18:49.64 .net]
すいません、ありがとうございます。

66 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/20(月) 18:07:07.61 .net]
非インタラクティブシェルとして起動するとき、aliasなどの設定ファイルを
読み込ませたいのですが、どうすればいいでしょうか?



67 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/20(月) 18:10:02.01 .net]
.zshenv に書く。

68 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/09/24(月) 16:20:06.91 .net]
$HISTFILEを手動で編集した後
fc -Rしても変更が反映されない(削除した行がbck-i-searchに候補として出てくる)んだけど
どうして?

69 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/09/24(月) 21:39:45.49 .net]
追加されてるからかな

70 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/18(日) 16:28:40.94 .net]
.zsh_history に日本語含んだコマンドは正常に保存されないの?
そういうコマンドも履歴検索したいんだが.

71 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/18(日) 17:28:46.97 .net]
環境依存なのかな? こっちだとできた ↑

72 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/18(日) 17:54:23.99 .net]
>>71
うそ,まじで.自分の手元では
Windows7 64bit, zsh 4.3.12 (i686-pc-cygwin)
Ubuntu12.04, zsh 4.3.17 (i686-pc-linux-gnu)
のどちらでも無理だ.
echo ほげ

echo ほぃ?
みたいに .zsh_history に保存される.マルチバイトを考慮してない感じがする.

73 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/18(日) 18:42:48.03 .net]
>>72
MacOSX 10.7.5 zsh 5.0.0 (MacPortsからのインストール)

lessやtailでみると echo ほぃ? になってるけど
historyで確認すると echo ほげ となっているので,
C-rではちゃんと下になるな

74 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/18(日) 20:18:46.93 .net]
>>72
Arch Linux (uname -r は 3.6.6-1-ARCH) zsh 5.0.0-3だけど,
>>73と同じく,lessでみるとecho ほぃ<B2>ぃ<A7>ってなってるけど,
historyやC-p, M-pではちゃんと
echo ほげぇ
ってなってるよ.

75 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/18(日) 20:36:46.76 .net]
>>73
zsh 4.3 でも history コマンドなら日本語表示できるわ.

zsh のバージョンを zsh-5.0.0 を試してみたら
73 と同じように C-r で日本語でも大丈夫だった.

理想的には .zsh_history 自体にきちんと保存して欲しいけど.

76 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/23(金) 01:34:55.51 .net]
おー、文字によって化けたり化けなかったりするんだねー。
まあ内部形式なのかもしれないし、これで正しいのかも。少し無理があるか。



77 名前:名無しさん@お腹いっぱい。 [2012/12/03(月) 01:31:10.17 .net]
.zsh_history は、0x80-0x9f の符号が現れると
0x83 をメタキャラクタとしてくっつける。
作者はこれを仕様と言ってるんで、ヒストリファイル
を使う場合は手動で除去するしかないね。。。
(またはソースコードでこの部分をコメントアウトして
コンパイルするか…)

78 名前:73 mailto:sage [2012/12/03(月) 11:39:00.77 .net]
>>77
内部で設定されているエンコードかと思って
変換できないか確認してダメだったけど
そういうことだったのね

79 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/03(月) 23:51:59.68 .net]
あーそうなんだ。
.zsh_history は 0x80-0x9f の符号を何として扱ってるんだろうね。

80 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/10(月) 20:38:45.04 .net]
算術演算をする (( )) ですが、中でプロセス置換 `` や $() を使うと挙動に違いが出ます。

$ 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だと両者は同じになるのようですが。

81 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/10(月) 21:11:51.31 .net]
>>80
知らんかったけど、backquoteじゃなくて、$() 使った方がいいよ、って言うてはるね
backquoteはネストできん。などなど…
ttp://zsh.sourceforge.net/Guide/zshguide05.html#l117

82 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/11(火) 00:22:27.86 .net]
$() 使った方がいいと思うけど、それは別として↓の結果を見ると
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 "..."'. ってあるしバグなんじゃない?

83 名前:80 mailto:sage [2012/12/13(木) 08:46:32.66 .net]
>>80,81
ありがとうございます。
不思議なのが、[ と ] 以外の記号だと大丈夫なんですよね。
これはバグと思ったほうがいいかもですね。

84 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/14(金) 00:51:33.91 .net]
% 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` ))'

って感じで ( でも出るよ。
括弧の対応がとれてないとなるのかもね。多分それだけじゃないけど。
バグなら法則性を求めてもあんまりしかたない気はするけど。

85 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/16(日) 17:38:41.99 .net]
/etc/z*を読み込まないようにする設定ってユーザ権限の範囲でできない?

86 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/16(日) 17:56:45.58 .net]
「そう思うんならお前がパッチ書け」で終了



87 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/16(日) 17:58:19.89 .net]
それおもしろくないからやめた方がいいよ。

88 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/16(日) 18:08:16.07 .net]
>>85
~/.zshenv の中で setopt NO_GLOBAL_RCS すれば一番最初に読まれる zshenv 以外はスルーされるんじゃね

89 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/17(月) 16:30:14.11 .net]
zsh-5.0.0(4.3系でも一緒でした)で補完候補に日本語ファイルがある場合、 文字化けするんじゃなくて$'\202'$'\240'.txt の様に文字コードで表示されて しまうのですが、原因に心当たりがある方いらっしゃいましたらご教示下さい。

90 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/18(火) 02:35:53.33 .net]
configureで--enable-multibyteされなかったとか?

91 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/18(火) 08:38:57.41 .net]
レスありがとうございます、環境をもうちょっと詳しく書きますね。
Androidでmultibyte-enableなzshを動かすべく、arm-linux上でstaticに
ビルドし、正常動作するバイナリを作成しました。これをAndroidに持って
来ると一見普通に動いている様なんですが、補完候補の日本語がコード
表示されてしまうんです。原因何だと思いますか?

92 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/22(土) 14:13:21.16 .net]
setopt printeightbit

93 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/28(金) 00:59:04.41 .net]
標準エラー出力のみをパイプに出力するには
$ command 2>&1 >/dev/null | command2
とすればいいようですが、これの仕組みが分かりません。
なんで 2>&1 としてるのに標準エラー出力は/dev/nullに行かないのですか?

94 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/28(金) 07:34:36.52 .net]
>>93
何回目のFAQだよw

2>&amp;1を実行している時点で標準出力(パイプ)が標準エラー出力にコピーされる。
(以後、2はパイプを指す)
次に、>/dev/null で標準出力が/dev/nullに変更されるが、
これはすでに2にコピー済みの標準エラー出力には関係ない。

95 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/28(金) 08:34:16.69 .net]
>>93
zshのバグです。でも便利なのでずっと直されてません。

96 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/28(金) 09:39:01.22 .net]
>>95
え?



97 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/28(金) 17:42:22.34 .net]
おまえらってzedつかってる?

98 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/28(金) 18:03:32.29 .net]
x="a b c"; for i in $x; do echo $i; done
ってやると、ash/bash だと、
a
b
c
って出ますが、zsh だと、
a b c
となってしまいます。
ash/bashと同じ動きをさせるにはどうすればいいでしょうか?

99 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/28(金) 18:20:19.15 .net]
>>98
set -o shwordsplit

100 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/28(金) 18:21:41.94 .net]
>>98
>>99以外だと${=x} を使ってもおk

101 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/28(金) 18:24:31.16 .net]
>>94
それだと標準エラー出力も/dev/nullに流れてしまうことになり、
説明になってません。

>>95
なるほど、バグだったのですか。
こういうバグは直せないですよね。直すと既存のスクリプトが動かなくなりますし。

102 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/28(金) 18:36:16.44 .net]
>>101
バグではない
理解が足りないだけだろ

103 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/28(金) 18:36:52.25 .net]
>>101
ム板に帰れ

104 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/28(金) 18:44:56.48 .net]
>>99,>>100
ありがとうございます!

105 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/28(金) 18:44:57.11 .net]
記憶が朧げだが、昔シェルスクリプト入門を謳ってネットで配布されていたテキストでも
同じ間違いをやらかしてなかったか

106 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/28(金) 21:07:49.29 .net]
おお、いつのまにか zsh 5.0.2 が。
数値記法の 1_000 ってそういえば ruby にそんなんあったな。すっかり忘れてたけど。
setopt 的でもあるのか。



107 名前:93 mailto:sage [2012/12/29(土) 18:53:23.86 .net]
>>94
もしかして >/dev/null よりも | が先に解釈されるんですか?
というか一般的に、リダイレクトよりもパイプの解釈が優先されるのがシェルの仕様?

108 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/29(土) 20:40:41.91 .net]
>>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 のところ読め.

109 名前:108 mailto:sage [2012/12/29(土) 21:23:21.25 .net]
書いてて思ったんだけど,
command1 2>&1 >/dev/null | command2
じゃなくて
command 2>/dev/stdout >/dev/null | command2
って書いても同じ意味だよね? 後者で書いたほうが
わかりやすいと思うんだけど,環境によっては動かなかったり
するのかな?

110 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/29(土) 21:25:32.38 .net]
>>93 は dup2 を知らないとよく陥る勘違いですな
FAQ になるのもわかる

せっかく zsh を使ってるのだから
command1 >&- 2> >(command2)
とでもするのが良いのかもしれん

111 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/29(土) 21:38:57.37 .net]
>>109
zsh のデフォルトの setopt multios な環境では意図通りには動かないね
setopt nomultios では大丈夫だけど

デフォルトの環境だと
command1 2>/dev/stdout >&- | command2
ときちんとクローズする必要があるんじゃないかな

112 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/29(土) 22:23:27.12 .net]
>>111
うーむ,ほんとだ.複数リダイレクトできるのも便利なんだが.
bash でいけるならいいか.シェルスクリプトで zsh は使わないよね?

setopt multios の状態で,試しにクローズしてやってみたけど,

$ command1 2>/dev/stdout >&- | command2
command1: line n: write error: Bad file descripter

と怒られる.command1 の 1 を破棄しないといけないのかと思ったが

$ command1 2>/dev/stdout >/dev/null >&- | command2
command1: line n: write error: Bad file descripter

変わらず.

$ command1 2>/dev/stdout >&- >/dev/null | command2

にしたら意図通りエラーが無くなった.リダイレクトの順番で
挙動が変わるのがよくわからんけど,あまり深入りしないほうがいいかな.

113 名前:93 mailto:sage [2012/12/30(日) 00:58:27.95 .net]
>>108
ありがとうございます。そっか、2>&1 を特別視してましたが
これも単なるリダイレクトなんですね。

114 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/30(日) 16:32:16.44 .net]
>>112
代わって深入りしといたよ。
>/dev/null >&- だと最終的に close(1) されてるから無効だけど
>&- >/dev/null だと close(1) 後に open してるから有効になる。

>&- とか <> とかあんまり用途が思い付かなかったけど、
>&- には multios 下での用途があるのか。multios 下でも特殊なことをしなければ不要な気がするけど。

115 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/30(日) 17:23:02.43 .net]
環境によって挙動に予想がつかないところがあるから、結局は
# 伝統的な方法
command1 2>&1 >/dev/null | command2
# プロセス置換を使う
command1 >/dev/null 2>>(command2)
あたりで落ち着くな
念を入れるなら /dev/null のかわりに >&- を使えばいいのか

昔から思ってるけど、リダイレクトの周りの空白の入れ方って悩ましいよね
ファイル記述子の場合は制限があるし
最近は空白を使わずに詰めて書くことが多いかな

116 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/30(日) 18:33:08.52 .net]
さっぱり話題についていけん・・・(´・ω・`)
manを読む努力せんとなぁ



117 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/12/30(日) 19:50:17.40 .net]
>>115
リダイレクト先がファイルパスなら空白入れてるわ
数字なら詰めて書く…っていうか詰めないと駄目か?

118 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/01/08(火) 22:50:20.01 .net]
配列の要素の最大・最小を返す機能てないですか?こんな感じで
$ a=(1 3 2)
$ echo $a[MAX]
3

さすがにないですかね?でもzshならやってくれそうな気も






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<182KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef