15/12/02 01:15:42.82 .net
じゃ俺はそれをrm -rf . zshrcで消しとくね
444:名無しさん@お腹いっぱい。
15/12/02 01:50:09.44 .net
>>443
怖いことするな
ls .
445:名無しさん@お腹いっぱい。
15/12/02 09:45:55.28 .net
知ってて言ってんでしょ
446:名無しさん@お腹いっぱい。
15/12/02 13:46:26.23 .net
知ってて知らん言うのは犯罪やぞ
447:名無しさん@お腹いっぱい。
15/12/06 19:33:09.46 .net
zsh 5.2
448:名無しさん@お腹いっぱい。
15/12/18 20:00:31.04 .net
(( )) 内の浮動小数変数のデフォルト型をdoubleにする設定ってないですか?
449:名無しさん@お腹いっぱい。
16/01/08 07:16:05.45 .net
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 では?
表示の有効桁数のことですか?
450:449
16/01/11 16:38:07.30 .net
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 で凌ぐ。
451:名無しさん@お腹いっぱい。
16/01/15 16:56:35.55 .net
seq 1 10 | echo `grep 5` `grep 3`
bashだと5が表示されるけど、zshだと完全に固まるね(^Cも^Zも受け付けない)
452:名無しさん@お腹いっぱい。
16/01/15 20:13:15.23 .net
5.1.1では^Cで止まる。
453:名無しさん@お腹いっぱい。
16/01/17 23:54:19.24 .net
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 の方が使い易そうだけど。
454:名無しさん@お腹いっぱい。
16/02/14 06:31:08.70 .net
hist_find_no_dupsはどういう意味なんでしょうか?
これを設定していても、Ctrl-pを繰り返し押したとき同じコマンドが何回も出てきます。
455:名無しさん@お腹いっぱい。
16/02/20 07:22:20.45 .net
Ctrl-rで検索したとき一度出たものと重複するものをスキップしてくれますよ。
456:名無しさん@お腹いっぱい。
16/02/20 12:37:09.21 .net
なるほど、ありがとうございます。
457:名無しさん@お腹いっぱい。
16/03/12 00:34:52.65 .net
URLリンク(d.hatena.ne.jp)
このzsh限定のselectメニューの文字化けどうすればいいんだろうか?
458:名無しさん@お腹いっぱい。
16/03/15 20:48:15.31 .net
selectの代わりにpercol使うことにした
459:名無しさん@お腹いっぱい。
16/03/31 14:16:01.37 .net
そういえば.zhistoryも日本語が文字化けしてた
history-all等の方で取り出すのは文字化けしないから
困った事にはならなかったが
bash_historyの方は化けないから
文字化けは他でもまた偶然直面しそうだ
直し方両方分からないし
460:名無しさん@お腹いっぱい。
16/04/02 02:15:04.35 .net
なんかzshがWindowsに対応とかニュースになってるらしいけどマジ?
461:名無しさん@お腹いっぱい。
16/04/02 17:24:11.62 .net
bashやろ
462:名無しさん@お腹いっぱい。
16/04/02 20:09:45.83 .net
ありゃ、bashか
でもそれでもすごいことだな
463:名無しさん@お腹いっぱい。
16/04/03 00:01:44.30 .net
すごいよ。WindowsでUbuntuのバイナリ互換するんだもんな
zshも動くよきっと
464:名無しさん@お腹いっぱい。
16/04/03 00:03:01.83 .net
今でも動くけどな
Windows7の人はxp-modeで試せばよい
URLリンク(unix.oskp.net)
465:名無しさん@お腹いっぱい。
16/04/04 03:22:03.43 .net
>>459
~/.zsh_historyのエンコーディングがLatin1っぽい
466:名無しさん@お腹いっぱい。
16/04/04 09:10:38.50 .net
>>465
nkf で utf-8 に変更しても駄目だったから
zshから書き出すまでの方見ないと駄目かもしれない
467:名無しさん@お腹いっぱい。
16/04/04 20:50:42.74 .net
>>459>>465>>466
仕様ではないのか
URLリンク(www.zsh.org)
468:名無しさん@お腹いっぱい。
16/04/10 04:03:37.50 .net
bashのcdでディレクトリだけ補完する、の下記設定は、zshだとどう書けばよいですか?
complete -d cd
下記でできましたが、自分には不要な設定もたくさんついてくるので、cdのディレクトリ補完だけ単独で設定したいです。
autoload -Uz compinit; compinit
469:名無しさん@お腹いっぱい。
16/04/10 13:30:00.02 .net
>>468
compctl -/ cd
470:名無しさん@お腹いっぱい。
16/04/10 20:47:25.28 .net
>>469
できました!
ありがとうございます。
471:名無しさん@お腹いっぱい。
16/05/11 12:17:56.75 .net
man cdとするとzshではなくbashのビルトインの方が呼ばれるんですがどうしたらいいですか
man zshbuiltinはちょっとめんどい
472:名無しさん@お腹いっぱい。
16/05/13 00:19:24.36 .net
run-help を使えるようにしておくとか
473:名無しさん@お腹いっぱい。
16/05/13 19:31:54.87 .net
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
これで補完のとき大文字小文字を区別しないようにしているのですが、
Macで/us<Tab>とすると/Usersが先に出てきてしまいます。
これを/usrが先に出てくるようにしたいです。つまり
入力した文字列と大文字小文字が一致した候補がある場合はそちらを先にしたいのですが
どうすればいいでしょうか?
474:名無しさん@お腹いっぱい。
16/05/13 22:41:19.11 .net
アルファベットが若い方が優先されてんでしょ
475:名無しさん@お腹いっぱい。
16/05/13 22:43:04.11 .net
マックをやめればすむ話だな
476:名無しさん@お腹いっぱい。
16/05/14 06:12:53.83 .net
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}'
これじゃダメなんだね?
477:名無しさん@お腹いっぱい。
16/05/14 20:28:58.04 .net
大文字小文字無視系の設定は、しばらく使ってみないと自分の好みの動作が判らんよな
楽をしようとしてるのに、縛りを少しきつくすると勝手に確定させられて「おいっ!」みたいなことがあるし
478:名無しさん@お腹いっぱい。
16/05/20 01:08:02.47 .net
oh-my-zshとかprezto使わんのみんな
479:名無しさん@お腹いっぱい。
16/05/20 01:11:25.06 .net
使わない
適当にググって人の設定パクるほうがいい
480:名無しさん@お腹いっぱい。
16/05/30 22:12:11.81 .net
俺は最初oh-my-zsh使ってたけど今はantigenで落ち着いたな(´・ω・`)
481:名無しさん@お腹いっぱい。
16/06/19 19:22:43.33 .net
やったことない(´・ω・`)
482:名無しさん@お腹いっぱい。
16/06/23 22:14:43.03 .net
.zshrcにfunctionを書いているのですが、readでユーザ入力を待っている時に、ctrl+c、ctrl+d、esc、どれも押しても強制終了できません。
function hoge(){
483:名無しさん@お腹いっぱい。
16/06/23 22:17:15.86 .net
.zshrcにfunctionを書いているのですが、readでユーザ入力を待っている時に、ctrl+c、ctrl+d、esc、どれも押しても強制終了できません。
ユーザ入力ができて、入力待ち中に強制キャンセルもできるようにするにはどのようにすればよいでしょうか?
function hoge(){
# 入力待ち中に強制キャンセルが何も効かない。。
printf "input: "
read string
}
484:名無しさん@お腹いっぱい。
16/06/27 20:12:25.69 .net
>>483
function hoge(){
trap 'return 1' SIGINT
printf "input: "
read string
}
これでどうだろう
485:483
16/06/30 00:17:40.19 .net
>>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が入力されるとそれでキャンセルされたように見えるのでこれで代用しようかな。
486:名無しさん@お腹いっぱい。
16/07/01 20:45:43.11 .net
>>485
見当違いなアドバイスだが、readに-tつけては
487:483
16/07/07 00:51:28.67 .net
>>486
なるほど。
秒数待ちをするんですね。
そのアイデアはまったく考えてませんでした。
案の一つとして検討させていただきます。ありがとうございます。
488:名無しさん@お腹いっぱい。
16/08/05 17:35:39.35 .net
ここ最近、履歴の共有ができなくなってしまいました
inc_append_history と share_history は有効にしてます
何が悪さをしてるでしょうか?
zshは5.2です
489:名無しさん@お腹いっぱい。
16/12/22 11:34:44.60 .net
function定義した中身を表示する方法はありますか?
aliasはwhichで内容を確認できるのですが、functionはwhichで見れず。。
何か他の方法で見れないでしょうか?
490:名無しさん@お腹いっぱい。
16/12/22 16:04:48.16 .net
typeやとあかん?
491:名無しさん@お腹いっぱい。
16/12/22 16:05:32.06 .net
すみません。忘れてください
492:名無しさん@お腹いっぱい。
16/12/22 20:10:18.20 .net
>>490,491
レスありがとうございます。
すでに違ったとレスいただいていますが、typeコマンド初めて知りましたので一応調べてみたら、functionだとわかるだけでした。
493:名無しさん@お腹いっぱい。
16/12/22 20:17:52.21 .net
関数定義も普通にwhichで見れると思うけど……
% function foo() { echo hoge; }
% which foo
foo () {
echo hoge
}
494:名無しさん@お腹いっぱい。
16/12/22 22:09:41.71 .net
whichが置き換わってるんとちゃう?
built-in which
でいける
495:489
16/12/23 00:31:06.34 .net
>>493,494
おお!
その通りでした。
whichをwhichするのは初めてだ。
↓alias登録されてた!
% which which
which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
これでいけました。ありがとうございます。
% builtin which is_exists
続きます。
496:489
16/12/23 00:37:07.30 .net
続きです。
.zshrcと.zshenv見直してもalias登録してないので、どこで設定されてるかぐぐったら
こんなの見つけました。
URLリンク(d.hatena.ne.jp)
どうやら下記で設定されてるみたいです。
/etc/profile.d/which-2.sh
これはzshの場合デフォルトで読まれるみたいですが、functionが見れなくなる欠陥whichで書き換えるとか迷惑ですね。。
これを読まないようにする設定とか無いでしょうか?
497:489
16/12/23 00:39:13.07 .net
途中で書き込んでしまいましたすみません。
読まないようにする設定が無ければ、無理矢理感があって気持ち悪いですが unalias which を.zshrcに入れて我慢します。
498:名無しさん@お腹いっぱい。
16/12/23 00:46:56.65 .net
zshはそんなものデフォルトで入れないよ。冤罪だw
その手のおせっかいはお使いのディストリビューション固有の事情かと。
499:489
16/12/23 00:51:58.22 .net
えええ
centos6です。。
500:名無しさん@お腹いっぱい。
16/12/24 12:06:57.31 .net
curlで&や?を含むURLを取得するとき、いちいちURLをクォートで囲むのが
面倒なんだが、いい方法ないだろうか?
501:名無しさん@お腹いっぱい。
16/12/24 14:15:22.12 .net
URLをコピペするときは bracketed-paste-url-magic が役立つ
502:名無しさん@お腹いっぱい。
16/12/24 14:58:57.32 .net
これか。これってターミナルエミュレータがbracketed pasteに対応してないとダメなんじゃない?
URLリンク(github.com)
こっちのurl-quote-magicなら自分のとこでも動いた。ともあれthx
URLリンク(d.hatena.ne.jp)
503:名無しさん@お腹いっぱい。
16/12/24 19:54:49.31 .net
自分はその手のコマンドは noglob を使った alias を定義してるな
504:名無しさん@お腹いっぱい。
16/12/25 07:10:40.66 .net
noglobは&に効かなくね?
505:名無しさん@お腹いっぱい。
16/12/25 14:42:22.28 .net
>>504
あれ、確かにそうだよなと思って履歴を見返したら、クォート
506:名無しさん@お腹いっぱい。
16/12/25 14:51:11.09 .net
途中で切れてしまった。履歴を見返したら & を含む場合はクォートしていたw
ごめんち
ブラウザ経由で呼び出す機会が多くなったし、端末に張り付ける場合も
正規化した URL を使ってたから、クォートする機会があまりなかった
自分の記憶が全くに当てにならんのが泣ける
507:名無しさん@お腹いっぱい。
17/02/08 15:33:37.91 .net
URLリンク(github.com)
を入れたんだけど 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:名無しさん@お腹いっぱい。
17/03/13 11:52:13.60 .net
pushd +3
とかってしたとき、3つ分スタック全体を循環させるんじゃなくて、
3つ目を取り出してスタックトップに乗せるって挙動なかったですか?
つまり最近使った順にスタックが並ぶ。
昔出来た気がするのですが、今マニュアル見てもなくて。
509:名無しさん@お腹いっぱい。
17/03/25 16:44:28.09 .net
ulimit -aってやると一番下に
-N 15: unlimited
と出るんですが、この項目は何ですか?
510:名無しさん@お腹いっぱい。
17/08/16 10:45:32.97 .net
extendedglobがmissing delimiterとか言われてエラーになる
何か他のオプションと衝突するとかある?
511:名無しさん@お腹いっぱい。
17/08/19 19:42:44.72 .net
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:|=*'
としてみたのですが、反映されませんでした。
512:名無しさん@お腹いっぱい。
17/11/08 00:09:30.35 .net
最近.zshrcを見直してzmodload zsh/filesが入ってたことに気付いたけど
これもう完全にいらない子なんだな。
たしか引数の最大バイト数を回避する目的で入れた記憶があるけど、
最近のLinuxは引数上限がかなり緩和されたはずだから困ることはまずないし、
むしろPOSIX準拠してないので制約が多い。
というかそもそもこれが作られた目的が緊急時のリカバリ用というのを今頃知った。
ただのPOSIX拡張だと思ってたわ・・・。manは見なきゃ駄目だな。
513:名無しさん@お腹いっぱい。
17/12/29 07:26:25.83 .net
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
CDVW4G8P2M
514:名無しさん@お腹いっぱい。
18/02/09 15:37:56.37 .net
世の中pythonが流行ってるけど、案の定xonshっていうシェルも出てきた
そのうちイーマック厨みたいにpythonは環境です(キリッとか言い出すやつも現れそうだな
515:名無しさん@お腹いっぱい。
18/02/12 03:10:42.94 .net
>>514
xonsh初めて知った。
機能的にはすごそうだが、ちょっと込み入ったことはシェルスクリプトで書いた方が後々使い回しが楽そうだな...
516:名無しさん@お腹いっぱい。
18/02/14 09:51:22.03 .net
☆ 日本の、改憲をしましょう。現在、衆議員と参議院の両院で、
改憲議員が3分の2を超えております。『憲法改正国民投票法』、
でググってみてください。国会の発議はすでに可能です。
平和は勝ち取るものです。お願い致します。☆☆
517:名無しさん@お腹いっぱい。
18/03/05 18:24:52.65 .net
fzfのキーバインドを変更したい時ってどうすればいいんですか?
具体的にはC-tをC-TもしくはM-Tに変更したいです
518:名無しさん@お腹いっぱい。
18/03/15 08:14:49.67 .net
muxer -i input.aac?sbr --file-format m4a -o output.m4a
ってコマンドを打ちたいんですが、sbrというオプションを付けるときは頭に?を付けないといけないんですが、
「?」がzshでワイルドカードとして扱われてしまいます。
ワイルドカードとして認識されないようにするにはどうしたらいいでしょうか?
519:名無しさん@お腹いっぱい。
18/03/15 08:31:31.50 .net
自己レス
?の前にバックスラッシュを入れたら使えました。
520:名無しさん@お腹いっぱい。
18/03/15 11:57:18.95 .net
zshのデフォルトだと、マッチするファイルがなければ?は?のままのはずだが。
521:名無しさん@お腹いっぱい。
18/03/16 01:19:49.71 .net
>>520
バックスラッシュ付けないとこのようになってしまいます。
$ muxer -i input.aac?sbr --file-format m4a -o output.m4a
zsh: no matches found: input.aac?sbr
522:名無しさん@お腹いっぱい。
18/03/16 01:28:32.25 .net
>>521
NOMATCHかなんか設定してるんでしょ。
man読みな。
523:名無しさん@お腹いっぱい。
18/03/16 01:54:20.85 .net
>>522
何の設定でしょうか?
何のmanをみたらいいですか?
今ググってみて
.zshrcに
setopt nonomatch
と書いたら?を付けなくてもコマンドが動きました。
524:名無しさん@お腹いっぱい。
18/04/13 02:04:18.70 .net
$ $PATH<Enter>
としたとき$PATHの値が表示されるようにできるみたいなんですが、
そういうオプションがあるんでしょうか?
525:名無しさん@お腹いっぱい。
18/04/14 20:09:52.28 .net
zsh: No such file or directory: のようなおまけがついててもいいなら
そのままでも表示はされる場合が多い気がする
526:名無しさん@お腹いっぱい。
18/04/15 02:53:00.19 .net
確かに。でも$PATHならともかく他の環境変数にもその方法を適用するには
リスクが高いですね。
527:名無しさん@お腹いっぱい。
18/04/15 09:21:33.89 .net
preexec使えばできると思う
528:名無しさん@お腹いっぱい。
18/04/15 16:39:01.17 .net
accept-lineをオーバーライドするのでもできるかも
URLリンク(stackoverflow.com)
529:名無しさん@お腹いっぱい。
18/04/17 21:53:10.70 .net
普通にechoするんじゃ何がダメなんだ
530:名無しさん@お腹いっぱい。
18/04/22 17:49:31.90 .net
ここでも出てるんだが、
URLリンク(stackoverflow.com)
git commit 'Add f<TAB>
としたときfで始まるファイル名を補完してくれたらいいんだが
531:名無しさん@お腹いっぱい。
18/05/03 01:54:35.99 .net
以下のように (( )) で浮動小数演算したところ思わぬ結果になりました。
a と b の型がどのように決まるのか教えていただけないでしょうか?
$ cat hoge
a=$(( 1e-6 * 1e-6 ))
(( b = 1e-6 * 1e-6 ))
typeset -p a
typeset -p b
$ zsh hoge
typeset a=9.9999999999999998e-13 #型は文字列?
typeset -F b=0.0000000000 #小数点以下10桁固定の型?
$ zsh --version
zsh 5.4.2 (x86_64-redhat-linux-gnu)
532:名無しさん@お腹いっぱい。
18/05/03 19:34:11.16 .net
よく知らずに答えるけど
$(())を使うと文字列
(())を使うと浮動少数や整数
になるんじゃないの?
533:名無しさん@お腹いっぱい。
18/05/08 19:03:35.11 .net
型はtypeset指定しなければ暗黙的に決まるわけだが、
floatは指数形式と小数点固定形式があるが(())内の暗黙floatは勝手に後者になる
そもそも型とその出力表現は別の概念なのにごっちゃになってんのが糞仕様すぎ
534:名無しさん@お腹いっぱい。
18/05/09 06:50:48.71 .net
タブ補完でmigemo使う方法って知られてるの
535:名無しさん@お腹いっぱい。
18/05/22 02:54:33.28 .net
知り合いから教えてもらったパソコン一台でお金持ちになれるやり方
時間がある方はみてもいいかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
NQSL6
536:名無しさん@お腹いっぱい。
18/05/25 04:02:31.48 .net
zsh/filesって今はいらない子なの?
これないと引数の最大バイト数の制約がきついよね?
537:名無しさん@お腹いっぱい。
18/05/25 07:37:08.83 .net
自分が必要なら使えばいい
俺は引数の最大バイト数制限なんてここ10年ひっかかったことないし
あったとしたら自分のマシンじゃないからzshじゃなかったはず
538:名無しさん@お腹いっぱい。
18/05/25 23:18:15.61 .net
昔のLinuxはかなり少なかったらしいね>最大バイト数制限
昔初めて.zshrcを作る際に他人の設定をパクってそのまま惰性で使ってる人多そう・・・
539:名無しさん@お腹いっぱい。
18/05/26 17:34:56.75 .net
そもそもこれが作られた目的って緊急メンテ用だし
URLリンク(www.zsh.org)より
It wasn't intended to provide full versions of the commands, the
commands which are there don't implement all the POSIX options, etc.
It's intended to provide enough to be useful in emergencies.
Most people shouldn't need to use it.
540:名無しさん@お腹いっぱい。
18/05/27 11:56:00.46 .net
>>530,>>534
URLリンク(hata-o.jp)
541:名無しさん@お腹いっぱい。
18/05/27 20:12:13.46 .net
>>540
530ってそれ関係ある?
542:名無しさん@お腹いっぱい。
18/07/10 10:11:10.94 .net
kill screen<TAB>
とか補完して候補が1個しかなかった場合、即PIDに補完されるけど、
候補が1個でもメニューを表示するようにできないかな
他のコマンドの場合はいいんだけど、killの場合は確認しないと不安で
zstyle ':completion:*' menu select=1
はやってみたけど変わらなかった
543:名無しさん@お腹いっぱい。
18/08/13 19:24:28.55 .net
pgrepやpkillでよくね?
544:名無しさん@お腹いっぱい。
18/08/14 20:21:50.30 .net
補完でできた方がよくね?
545:名無しさん@お腹いっぱい。
18/08/29 06:32:57.35 .net
bash が入ってるが zsh は入ってない環境って例えばどんなの?
546:名無しさん@お腹いっぱい。
18/08/29 11:47:58.80 .net
>>545
20年前のUNIX/Linuxサーバー
10年前のならだいたい入ってると思うけど、それでもデフォルトで入ってるかどうかはわからん
547:名無しさん@お腹いっぱい。
18/08/29 13:19:33.55 .net
そうなのか。実は zsh スクリプトを積極的に書いていっていいものかと悩んでいるんだ。
他人に使ってもらうためのスクリプトは bash で書いていたが、普段使いのシェルが zsh なので
なるべくzsh を使いたい。しかし「このスクリプトを使うためにまず zsh 自体をインストールして下さい」
と言うのは避けたい。導入のハードルを上げたくない。
548:名無しさん@お腹いっぱい。
18/08/29 19:14:19.25 .net
対話的に使うシェルとスクリプトで使うシェルは別でもいいんじゃないの
549:名無しさん@お腹いっぱい。
18/08/29 22:33:23.57 .net
日常の作業を自動化したくてスクリプトを書くことがよくあるんです。
あと zsh の rcquotes とか zparseopts とかが便利すぎるので…
550:名無しさん@お腹いっぱい。
18/08/29 23:32:01.46 .net
自分で答え出してるんじゃね
自分しか使わないならzshでいい
他人に使ってほしいならせめてbash
551:名無しさん@お腹いっぱい。
18/08/30 00:15:19.56 .net
>>550
はい。つまり気になっているのはデフォルトで bash が入っているが、
しかし zsh は入ってない環境が実際あるのか。ってことなんです。
552:名無しさん@お腹いっぱい。
18/08/30 07:17:05.79 .net
あるよ
CentOS7でもそうだろ
553:名無しさん@お腹いっぱい。
18/08/30 11:46:06.84 .net
入ってるか入ってないかは半々ぐらいだね
554:名無しさん@お腹いっぱい。
18/08/30 12:49:34.30 .net
なるほど、そんなレベルなんですか…
555:名無しさん@お腹いっぱい。
18/08/30 17:31:18.55 .net
「入れれない」ってんならともかく、「入ってない」だけなら入れれば済むワケで
556:名無しさん@お腹いっぱい。
18/08/30 18:41:39.13 .net
最近のOSXにはプリインストールだから使って良いんちゃう
557:名無しさん@お腹いっぱい。
18/08/30 21:25:34.92 .net
サーバ用途だとzshは明示的に入れないと入らないでしょ。稼働中のサーバでは後から入れるにしても難色を示される事も多いですし、上でどなたか書かれてたように、自分に決定権のある環境以外でも使うのなら、zshでスクリプトを書くのは避けるべき。
最近はデフォルトのshellがbashになってたりするけど、昔はbashですら入っていない環境も多くて、/bin/sh で書くように教育されたよ。
年寄り臭くてスマンね
558:名無しさん@お腹いっぱい。
18/08/31 01:32:04.70 .net
>>547
俺も昔おんなじことで悩んでたけど、
>「このスクリプトを使うためにまず zsh 自体をインストールして下さい」
これが通らないような相手のことを考えてスクリプト書いてやるのが馬鹿らしくなって、
以来悩むのはやめたわ。それ自体が仕事だとそうもいかんのだろうけど。
559:名無しさん@お腹いっぱい。
18/08/31 14:18:23.15 .net
>>551
パッケージでなら用意されてない環境も今では珍しいと思うけど、
最初からインストールされてるかどうかで言えば、入ってない環境なんて
山ほどあるかと。
他の人も書いてるけど、デスクトップ用途ならともかく、サーバ用途なら
sh、csh、bash、tcshぐらいまでしか入ってないとかは普通にあり得る。
560:名無しさん@お腹いっぱい。
18/08/31 17:27:51.20 .net
csh系は論外とすると、結局無難なのはshかbashだろうか
561:名無しさん@お腹いっぱい。
18/08/31 17:45:30.47 .net
bashがデフォで入ってない環境もあるんで、
無理のない範囲でshにしとくといいよ。
562:名無しさん@お腹いっぱい。
18/09/01 04:27:44.51 .net
> 年寄り臭くて
いいえ、助言助かりますよ。かつてのbashの位置にようやく追いついたということですね。
先輩方どうもありがとう。
サーバーで使うなら、zsh は諦めるけど
デスクトップでは使ってもいいなと思えてきた。
563:名無しさん@お腹いっぱい。
18/09/01 04:29:57.61 .net
そうすると気になるのは、fish や Go との差はどうなのかってこと。 必要ならインストールさせればいい、ってスタンス
なら、当然その辺がライバルになってくるけど…
564:名無しさん@お腹いっぱい。
18/09/01 22:08:09.98 .net
まあいいか。スレにみんなにお礼と言ってはナンですが、makefile で zsh を使う方法を考えたので紹介させてください
~ makefile で zsh を使う・Makefile ~
# 設定をまとめた親ディレクトリ.
export ZDOTDIR := $(TMPDIR)/make.$(shell echo $$PPID).zsh
$(ZDOTDIR):
@cd $(@D); mkdir $(@F)
$(ZDOTDIR)/.zshenv: | $(ZDOTDIR)
@exec 1> $@; echo setopt rcquotes
$(ZDOTDIR)/all: $(ZDOTDIR)/.zshenv # マーカーファイル。この行の依存関係に .zshrc などを並べてね.
@touch $@ # 依存関係をまとめたいだけなので、中身はからっぽで.
-include $(ZDOTDIR)/all # このように include することでレシピの実行などでシェルが使われる前に設定ファイル群を作れる. マーカーファイルはない状態から作るのでエラーメッセージはかならず出る。それを消すための先頭のハイフン.
SHELL := /bin/zsh # zsh の設定ファイルは ZDOTDIR 環境変数で渡される.
# なおレシピ外の行での $(shell ...) 関数から呼ばれるシェルは、直前のSHELL設定行より下では作られた ZDOTDIR が有効になった zsh が使える。その行より上ではただの /bin/zsh が使われる.
hoo:
echo 'hoo''bar'
~ makefile で zsh を使う・実行 ~
$ make hoo
echo 'hoo''bar'
hoo'bar
565:名無しさん@お腹いっぱい。
18/09/15 02:17:59.88 .net
zshwiki.orgってまだ落ちてるの?
もしかして閉鎖?
566:名無しさん@お腹いっぱい。
18/10/28 20:27:16.64 .net
fishでshift+tabを押すと補完候補をインクリメンタルに選択出来るんだけど、これに似た機能はzshないかね
567:名無しさん@お腹いっぱい。
18/11/01 13:19:56.37 .net
hoge hoge hoge ~ hoge
と文字列を任意個展開するスマートな方法ないですかね?
for文使えとかそういうのはなしでお願いします
マニュアルのExpansionの章をくまなく読めばわかるのかもだけど
568:名無しさん@お腹いっぱい。
18/11/01 13:28:12.15 .net
echo $(yes hoge | head -10)
569:名無しさん@お腹いっぱい。
18/11/01 13:33:18.60 .net
あ、repeatコマンドもなしでお願いします
{hoge(n)} みたいに短くスマートにやる方法が知りたい
570:名無しさん@お腹いっぱい。
18/11/01 13:36:12.43 .net
forもwhileもrepeatも使ってないからセーフ
571:名無しさん@お腹いっぱい。
18/11/01 13:36:59.97 .net
>>568
あ、bashでこんな手があるんですね
yesって何に使うのだろうと思ってた
ただ、天下のzshですからもっとzshらしい方法があるはず
572:名無しさん@お腹いっぱい。
18/11/01 14:33:26.13 .net
zsh本来の力の10%も使いこなしてないけど、せめてExpansion系は使いこなしたいわ
>>566
fishよく知らないんだけどインクリメンタル補完って何?
もしかしてサジェスト系?
573:名無しさん@お腹いっぱい。
18/11/01 23:47:40.16 .net
ぼうやーってわしもちふつうだけど、まーおこめのほうがいいんだけど
エラーの原因が分からない?
まず確認しよう!
《書き込めない時の早見表》
《掲示板へ戻る》
《スレッド一覧へ戻る》
《スレッドへ戻る》
もしかしてアクセス規制ですか?
お使いのプロバイダさんが、原因となった人に対応するまで規制は続きます。
個別の対応・進展については、プロバイダさんへお尋ねください。
その他、5chちゃんねるについては、 初心者の質問 批判要望 運用情報 運用臨時 などへどうぞ。
URLリンク(o.8ch.net)
574:名無しさん@お腹いっぱい。
18/11/01 23:49:13.04 .net
やっぽ(^|0|^)
575:名無しさん@お腹いっぱい。
18/11/02 00:43:17.26 .net
あーめんどくさいなー、びんぼうだしさいごだし、ぼうそういこかなあれはあるか
576:名無しさん@お腹いっぱい。
18/11/02 00:45:18.15 .net
わしかわいそーきょうじゅうにじょうものんだし、ああじゅよんのむと、ししょーあるksなきのせいかな
577:名無しさん@お腹いっぱい。
18/11/02 00:46:56.52 .net
やだおおさかなんか、またもどってこないといけない
578:名無しさん@お腹いっぱい。
18/11/02 00:48:19.84 .net
なんでかんじじゃないんだ
579:名無しさん@お腹いっぱい。
18/11/02 01:24:08.04 .net
fish使ってみたけどゴミじゃん
zshこそ至強
580:名無しさん@お腹いっぱい。
18/11/04 19:43:05.08 .net
[ $i -lt 100000 ] と [[ $i -lt 100000 ]] では後者のほうが速い
Linux上では2.5倍ぐらい後者が速いが、
WSL上では10倍以上の差をつけて後者が速い
他のシェルでも似たような傾向はあるがこれほどの差はない
どうもzshはシステムコール呼びすぎっぽいな
581:名無しさん@お腹いっぱい。
18/11/04 19:49:50.35 .net
[ ] が遅いって言うよりも関数呼び出しが遅い気がするな
while [[ $i -lt 100000 ]]; do を
↓
foo() {
[[ $i -lt 100000 ]]
}
while foo; do
こんな感じに置き換えてみたら、同じように遅くなった
[ ] を使っていた場合、最初から関数呼び出し相当だったということかも
582:名無しさん@お腹いっぱい。
18/11/04 20:00:30.18 .net
ベンチマークで、ループしてevalとそうでない場合の
速度差を調べようと思ったんだが、まさかループの回数判定で
evalと同等の差がでるとはwww
evalもzshだけ遅い。他のシェルはeval使っていても
ほとんど速度は落ちないというのに
583:名無しさん@お腹いっぱい。
18/11/07 00:58:35.37 .net
あれ、[って外部コマンドのtestじゃないの?
584:名無しさん@お腹いっぱい。
18/11/07 04:53:13.07 .net
俺の知る限り、現在使われてるBourne系シェルの
全てで [ はビルトインになっている
585:名無しさん@お腹いっぱい。
18/11/09 06:53:11.53 .net
\[
586:名無しさん@お腹いっぱい。
18/11/09 09:26:03.48 .net
\[^_
587:名無しさん@お腹いっぱい。
18/11/11 11:01:33.88 .net
\[^_^
588:名無しさん@お腹いっぱい。
18/11/23 23:01:18.39 .net
setopt forcefloatして(( ))の数値演算すると固定表示で出力される仕様みたい
それはいいんだけど、最後の桁に誤差が混じってちょっと困る
なにかいい方法ないかな
$ echo $(( 1 ))
1.
$ echo $(( .1 ))
0.10000000000000001 ←0.1 ってなってほしい
589:名無しさん@お腹いっぱい。
18/11/24 12:49:07.27 .net
>>588
printf じゃだめかな?
$ printf "%.1f\n" $((.1))
0.1
$ printf "%.2f\n" $((5.1))
5.10
590:名無しさん@お腹いっぱい。
18/11/24 17:01:24.90 .net
printfで0.999999999999999になったとき
どう表示されるのだろうか
591:名無しさん@お腹いっぱい。
19/02/27 22:41:58.39 .net
先輩、手の空いてる時に教えていただけませんか?
ssh接続して、サーバー内で
[server:~] $ sudo rm -f `ls -1t /home/user/work/*.mp4 | tail -n+3`
は、おkなのですが、
[local:~]$ ssh hostname “sudo rm -f `ls -1t /home/user/work/*.mp4 | tail -n+3`”
は、
zsh: no matches found: /home/user/work*.mp4
で、うまくいきません。
サーバー はbash しか入ってないです。
これってどうしたらうまくいくがアドバイスいただけませんでしょうか。
rmするのにsudoしてるのは、docker run -v してるディレクトリで
コンテナが吐き出すファイルだからです。
592:名無しさん@お腹いっぱい。
19/02/28 00:06:45.12 .net
>>591
\*.mp4 みたいにエスケープするとどうなる?
593:591
19/02/28 00:20:38.97 .net
レスありがとうです!
エスケープ試してみたのですが、
zsh: no matches found: /home/user/work*.mp4
で結果は変わらなかったです。
594:名無しさん@お腹いっぱい。
19/02/28 01:58:08.65 .net
クライアント側のzshが先にワイルドカード展開しようとしてエラーになってるのかな
ダブルクオートをシングルクオートにするのはどうか
lsコマンドを囲んだ元のシングルクオートはエスケープするか$()で置き換えるか
595:名無しさん@お腹いっぱい。
19/02/28 04:07:10.31 .net
ls を囲んでるの、シングルクオートじゃなくてバッククオートなんだよ。
だから ssh を呼び出す前にクライアント側のシェルで展開されて、何もマッチしないから空の文字列になってる。
単純にダブルクオートをシングルクオートに変えるだけでいいと思うよ。
596:名無しさん@お腹いっぱい。
19/02/28 11:32:06.11 .net
>>594-595
ダブルクオートをシングルにしたらいけました。
天才! ありがとうございます!
597:名無しさん@お腹いっぱい。
19/03/06 19:43:09.72 .net
ワイルドカードの質問ですが
mkdir ~/hoge
touch ~/hoge/fuga
ls ~/hoge/fu*
最後の行のfu*がタブ押しても補完してくれません
~が$HOMEだと補完してくれます
バグですかね?
598:名無しさん@お腹いっぱい。
19/03/06 21:40:41.30 .net
>>597
バグだろうね
自分の環境では補完されるからキーボードかPC捨てて買い換えろ
599:名無しさん@お腹いっぱい。
19/03/30 02:31:35.90 .net
(( a = 0 )) と (( a = それ以外の数値 )) の終了ステータス $? が
それぞれ1と0なんどけど仕様?(( a = 0.0 )) とかにしても1。
変数に設定された値自体が終了ステータスに影響するっておかしくない?
エラーがあると困るシェルスクリプトでは最初に set -e するようにしてるんだが
これじゃ (( )) で数値演算したいときに超困る
600:名無しさん@お腹いっぱい。
19/03/30 09:43:53.90 .net
>>599
ちょっと調べてみた
まずbashでhelp letを見てみると
Exit Status:
If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.
とあるので((...))は中身が0に評価されたときのみ1を返す
じゃあa=0とa=1(これはassignment)がどんな値に評価されるのか?だけど
POSIXを見ると$((...))の中身はCのルールに従って評価されると書いてある
((...))もPOSIXには無いけど同じルールに従うはず
URLリンク(pubs.opengroup.org)
で、Cだとassignmentはassignされた値を返すので
((a=0))は0、((a=1))は1を返すということになる
一言で言うと(( ... ))の中はCのルールが適用されるからということかな
set -eの回避策は((a=0, ..., a>100))とか、: $((a=0))とか、if文の中に押し込むとか色々ある
601:名無しさん@お腹いっぱい。
19/03/30 09:45:56.68 .net
間違えた修正
誤 ((a=0))は0、((a=1))は1を返すということになる
正 ((a=0))は1、((a=1))は0を返すということになる
602:名無しさん@お腹いっぱい。
19/03/30 14:08:35.55 .net
>>600,601
調べてくれてありがとう。Linux歴15年以上あるのに今頃知りましたよ
: $(( ~ )) のスタイルにするしかないかー。面倒だ
ちなみにこんなwhile処理で発覚した。致命的なミスをする前に気づけてよかった
set -e
(( x = xmin ))
while : ; do
~処理~
(( x += dx ))
(( x > xmax )) && break
done
変数は全部浮動小数ね
603:名無しさん@お腹いっぱい。
19/04/18 22:53:06.53 .net
gitで
M ../a1.txt
M ../a2.txt
こんな風に親ディレクトリに変更ファイルがあるとき
git add <Tab>
で候補だしてくれないじゃん。
git add ../<Tab>
なら出るんだけど。これ出るようにできないかね?
604:名無しさん@お腹いっぱい。
19/04/21 01:52:16.18 .net
>>602
このスレは始めてきたので今更だが
普通は
x=$((xmin))
x=$((x+dx))
[ "$x" -gt "$xmax" ]
とかやろ?
605:名無しさん@お腹いっぱい。
19/04/22 23:59:34.71 .net
せっかくzsh使ってんのに-gtだの-leだのまどろっこしい書き方できるかよ
606:名無しさん@お腹いっぱい。
19/04/24 00:30:15.21 .net
だからそのせいでバグってるんだろw
607:名無しさん@お腹いっぱい。
19/05/12 09:37:21.73 .net
~/.zsh_historyファイルを読んで、コマンド実行の傾向を分析するkibanaのdashboardを作りました。
dockerで作らているので、非常に簡単に始められます。
もし良かったら使ってみてください。
URLリンク(github.com)
608:名無しさん@お腹いっぱい。
19/05/20 19:48:20.77 .net
lsのソートについて質問
ファイル名先頭の_が無視されるのか
hoge1 _hoge2 hoge3
となるのだけど
_hoge2 hoge1 hoge3
とするにはどうしたらいいの?
609:名無しさん@お腹いっぱい。
19/05/21 06:05:49.21 .net
env LC_COLLATE=C ls
610:名無しさん@お腹いっぱい。
19/05/21 15:54:03.74 .net
>>609
zshの問題じゃなかったんだ
失礼しました
ありかとう
611:名無しさん@お腹いっぱい。
19/06/04 15:35:52.59 .net
新しい macOS のデフォルトシェルが zsh になるってよ!
612:名無しさん@お腹いっぱい。
19/06/04 15:50:15.05 .net
macOS 10.15 Catalinaではbashに代わりzshがデフォルトシェルに。
URLリンク(applech2.com)
613:名無しさん@お腹いっぱい。
19/06/04 19:47:25.06 .net
bashですら重いのに、更に重いzshにするのか・・・
誰が喜ぶんだ?
614:名無しさん@お腹いっぱい。
19/06/04 20:29:47.36 .net
Macのシェルなんて素人さんしか使わねぇよ
WSLと同じ
品質なんかどうでも良い
615:名無しさん@お腹いっぱい。
19/06/04 21:16:25.72 .net
GNUは嫌だ
でも今更cshも嫌だ
zsh
616:名無しさん@お腹いっぱい。
19/06/05 02:28:28.14 .net
zshは互換性が低いんだよな
617:名無しさん@お腹いっぱい。
19/06/05 10:39:23.94 .net
zshに関する日本語の記事が増えるなら嬉しい
618:名無しさん@お腹いっぱい。
19/06/05 13:07:51.89 .net
日本語のドキュメントなんて飽和してね?
619:名無しさん@お腹いっぱい。
19/06/09 20:53:15.41 .net
タブ補完で例えば、
cp oo/oo kk/kk の oo/から保管して
ppppを入力する場合、ooとppppの差分の2文字が上書きされるのですが、回避する方法はありますか?
上の場合だと
cp oo/ppppk/kk のような結果になります。
620:名無しさん@お腹いっぱい。
19/07/25 03:09:55.25 .net
カレントシェルで文法チェックのためにdryrunしたい。
zsh -n $BUFFER で変数 BUFFER をチェックできるけど、
新しくシェルを立ち上げるから setopt がズレてるおそれがあり、
いまのシェルで $BUFFER が実行できることを保証できない。
621:620
19/07/26 01:38:11.16 .net
たとえば ignore_close_braces がオンになっていると
args(){ echo $# } はパースエラーになる。
622:名無しさん@お腹いっぱい。
19/07/31 19:38:44.01 .net
そもそも dryrunである以上、$BUFFER が実行できることなんて保証できない
setoptを含め、実行時にしかわからない情報に依存するものは
実行しないdryrunでわかるわけがない
623:名無しさん@お腹いっぱい。
19/08/01 12:54:23.45 .net
>>622
なら zsh -n は何の役にたつの?
文法をチェックする… ただしパーザの挙動を変えるsetoptが起こる場合
結果は正しくない。起こるか否かも動的にしか判らないのだから、
静的に保証できるものは何もないのでは。
624:名無しさん@お腹いっぱい。
19/08/01 13:21:22.25 .net
622はおそらく間違っている。
現在のオプションを参照するカレントシェルで動く文法チェッカがあれば、
$BUFFERの実行を伴わない文法チェックはできると思う。
setopt によるパーザの変更はひとつのコマンド行が終わった後に効くっぽいからだ。
二行のファイル
setopt ignore_close_braces
args(){ echo $# }
をsourceすると失敗するが、一行に結合してインタラクティブシェルから呼ぶと成功する。
625:名無しさん@お腹いっぱい。
19/08/01 14:05:18.91 .net
>>623
> なら zsh -n は何の役にたつの?
構文チェックであり、実行時チェックではない。
626:名無しさん@お腹いっぱい。
19/08/01 14:14:42.30 .net
args(){ echo $# }
は ignore_close_braces がオンであろうがオフであろうが
そのオプションとは無関係に正しい文法
だからzsh -nでチェックすると正しい文法として扱われる
args(){ echo $# } という関数定義命令を実行すると、
パースエラーという "実行時エラー" が出る
「パースエラーなんだから、実行時エラーじゃないやい!」なんて理屈は通じない。
evalで変なコードを実行したらパースエラーになるだろ
実行時パースエラーというのものが存在する
dry-runである以上、実行時パースエラーを見つけることは不可能
zsh -nは間違ってる文法を「間違ってる文法」だと保証してくれるが
「正しい文法」だとは保証していない
627:名無しさん@お腹いっぱい。
19/08/01 14:17:22.64 .net
evalがある言語では ソースコードのパースも(一部は)実行時に行われる
dry-run=実行しない以上、実行時にしかわからないエラーを見つけられるわけがない。
628:名無しさん@お腹いっぱい。
19/08/01 14:19:19.08 .net
ignore_close_braces オンで文法チェックしたいなら、
こうすればいいだけ
zsh -o ignore_close_braces -n
629:名無しさん@お腹いっぱい。
19/08/01 15:13:15.12 .net
>>626
構文チェックだけして実行時パースはどうでもいいって状況があるのか?
ともあれ zsh -n の働きはわかった。構文チェック -> 実行時パース の順で通していくわけだね。
今回の俺の目標は$BUFFERの実行時パースって位置づけか。
>>628
サンクス、現在のコマンドラインの$BUFFERとその時点のオプションを渡せば目標は達成できるぜ。
実行なしでの文法チェックができた。
もちろん$BUFFER内のevalの引数まではチェックしないけど、そこまでは元々期待してない。
630:名無しさん@お腹いっぱい。
19/08/02 10:43:58.09 .net
いやその理解はおかしい。構文チェックが二段階あるわけではない。
インタラクティブシェルでは実行時パースの単位はコマンド行の実行毎になるというだけ。
そのため$BUFFERのチェックに限っていえば、パースは一回なので、
途中でのパーザ変更は変数中に効果を発揮しない。故にドライランで構文チェックができる。
> args(){ echo $# }
> は ignore_close_braces がオンであろうがオフであろうが
> そのオプションとは無関係に正しい文法
ノー。zsh -o ignore_close_braces -n ... で判定するとエラーになる。zsh -n の機能は単に構文チェックするというだけ。
その例のようにパーサの変更がない区間での構文チェックで役にたつ。
アドバイスにおいて、レスをよく読まずに一般論でドヤ顔したり、相手の思考を妄想して叩くべきではない。
631:名無しさん@お腹いっぱい。
19/08/02 11:33:35.09 .net
あとはこんなときとかに使えるね。
make(){
zparseopts -D -M -E -A opts -- n -just-print=n -dry-run=n -recon=n
if [[ $opts[(i)-n] ]];then
command make -f =(echo '.SHELLFLAGS := -n -c') "$@"
else
command make "$@"
fi
}
これは make の dryrun をシェルの dryrun に置き換える。スクリプトを表示するだけだったのが、文法もチェックするようになるよ。
$ make -f =(echo 'SHELL = zsh';echo 'hoo:; echo hoo)') -n
echo hoo)
zsh:1: parse error near `)'
632:名無しさん@お腹いっぱい。
19/08/02 13:35:05.17 .net
>>630
> いやその理解はおかしい。構文チェックが二段階あるわけではない。
二段階あるんじゃないよ。
-nによる構文チェックは実行せずに静的な構文チェックを行う。
実行しないから実行したら文法エラーになるようなものを見逃す。
通常の実行時は静的な構文チェックは行わずに、実行しながら構文チェックを行う
二段階あるんじゃなくて、二種類あるんだよ。
633:630
19/08/02 13:54:57.79 .net
>>632
同意。俺の理解と等しい。
634:名無しさん@お腹いっぱい。
19/08/02 14:01:37.54 .net
んで、話は最初に戻る
そもそも dryrunである以上、$BUFFER が実行できることなんて保証できない
setoptを含め、実行時にしかわからない情報に依存するものは
実行しないdryrunでわかるわけがない
635:名無しさん@お腹いっぱい。
19/08/02 14:32:46.44 .net
ノー。$BUFFER 実行時の構文チェックは一回だから
636:名無しさん@お腹いっぱい。
19/08/02 15:29:13.61 .net
>>635
何いってんの?
$BUFFERに入ってるのはただのファイル名なんだけど?
zsh -n $BUFFER
構文チェックに通ったからと言って、実行したときに構文エラーが出ないとは限らない
なぜなら、zsh -nは実行したときの構文チェックとは別物だから。
637:名無しさん@お腹いっぱい。
19/08/02 16:04:43.33 .net
>>636
いや、man zshzle に書いてあるが zsh の変数 $BUFFER は
エディットバッファの中身を格納している。この値は zle のウィジェットから取得できるんだ。
コマンドラインに例えば echo hoo と入力して実行すると BUFFER='echo hoo' になる。
ウィジェットは自作もできて、好きなキーに bindkey 命令で紐づけて呼べる。
読み返して気付いたんだが、620 は書き間違いで
zsh -n -c $BUFFER
が正しい。
zsh スレだから当然BUFFERくらい知ってるよなと思っていて、会話が繋がっていったので疑いもしなかったんだが
これは完全に俺が悪いです。ごめんなさい。
638:名無しさん@お腹いっぱい。
19/08/04 07:19:57.29 .net
source ~/.zshrc を打とうとして source ~/.zsh_history を実行してしまった悲劇が話題になってた
これどう対策する?
639:名無しさん@お腹いっぱい。
19/08/04 07:28:41.73 .net
>>638
具体的に何が問題なの?
640:名無しさん@お腹いっぱい。
19/08/04 08:14:57.90 .net
URLリンク(qiita.com)
~/.zshrc を実行するつもりがタブ補完などをスリップしてしまい .zsh_history を実行していまう。
するとヒストリファイル($HISTFILE == .zsh_history)に書かれた過去に実行したコマンドが、順番に source コマンドによって読み込まれて実行される。
記事で紹介されている事故では途中で止められる機会があったから良いものの、運が悪ければ不可逆的・破壊的コマンドが走り重要な情報を含んでるかもしれない現環境がズタズタになる。
641:名無しさん@お腹いっぱい。
19/08/04 09:04:01.96 .net
ヒストリ先頭に予め終了命令を入れておくという技をtwitterでみた。
手作業だと忘れそうなので、.zshrc にこういうのを書いておけばいいかな。
< $HISTFILE | { mv $HISTFILE{,.bak}; sed '1{/return 1/!i\
echo '"'"'Cannot source `'$HISTFILE'`, Abort.'"'"' >&2;return 1
;}' > $HISTFILE ;} && rm $HISTFILE.bak
642:名無しさん@お腹いっぱい。
19/08/04 09:05:51.31 .net
>>640
リンク先読んでないけど、それコマンド確認しないでEnter押しちゃ何だってトラブルの元だよね
補完offにしとくか、HISTSIZEを2-3ぐらいにしとけば
設定ファイル編集した後に読み込むならsource !$<tab>でもいいんだし
643:名無しさん@お腹いっぱい。
19/08/04 09:15:19.48 .net
誰しも失敗はあるし、フェイルセーフはやっぱほしいよ。
>>642
> 補完offにしとくか、HISTSIZEを2-3ぐらいにしとけば
それだと普段の作業がちょっと不便では。
>>641
は毎回mv,sedとかが走るのはパフォーマンス的にどうなんだ
HISTFILE=~/my_history みたいに換えとくのが単純でいいか。
644:名無しさん@お腹いっぱい。
19/08/04 09:25:34.17 .net
>>642
ヒストリ展開は便利だけど、ファイル編集した後なんか適当なコマンドを思いつきで打ってしまうとやりにくい。
>>643
いやこのためだけに、$HISTFILEをファンシーな名前にするのはなんだか環境が汚れた感じがする。
645:名無しさん@お腹いっぱい。
19/08/04 11:29:09.41 .net
これで行けるわ
zstyle ':completion:*' ignored-patterns '.zsh_history'
.zshrc あたりに追加すればいい
646:名無しさん@お腹いっぱい。
19/08/04 12:10:26.35 .net
書き直した。ヒストリのバックアップは別でやるべきだわ
function ensure-file-head(){
[[ $(< $1 | read -re) == $2 ]] && return
< =(print -r -- $2;< $1) > $1
} # ensure preventing `source .zsh_history`.
ensure-file-head $HISTFILE 'echo '"'"'Cannot source `'$HISTFILE'`, Abort.'"'"' >&2;return 1'
ファイル直接編集を避けるためにヒストリ関連の組み込み命令 fc -R, -W とかを使ってやる方法も考えてみたが、オプションの具合によってはファイルに追記しかしないし、デフォルトでは詳細なタイムスタンプがつかなかったりするので、
「この指定はsetopt ~ の後で行う必要がある」のような条件がついて美味しくない。
>>645
補完よく知らないのだが、そっちに手を入れるほうが良さそうだね。
試してみたところその指定では tail .zsh_history のようなものも弾かれてしまわない?
source だけに限定するのは難しいだろうか
647:名無しさん@お腹いっぱい。
19/08/04 12:18:01.65 .net
>>646
historyとどう違うの
648:名無しさん@お腹いっぱい。
19/08/04 12:52:07.02 .net
>>647
fc のこと? history == fc -l で、リストアップに限定したコマンド。
649:名無しさん@お腹いっぱい。
19/08/04 13:01:33.64 .net
問題の対策は他にもEnterキーのアクションである accept-line ウィジェットを置き換えるとか、
コマンドライン実行前に呼ばれる preexecフックとかで止める方法がある。後者は記事のブックマークコメントの先で紹介されてた。
でも言われてた通り機構をあらたに作る必要があって煩雑になるし、その辺は元々弄りたい需要が多すぎるのでただでさえゴチャついてるところに手を入れがたい。
インタラクティブシェルだけ source を関数で置き換える方針はどうだろう。
.zsh_historyが引数のときだけ実行を警告するように。これも軽い修正になってよさそうじゃないかな
650:名無しさん@お腹いっぱい。
19/08/04 13:50:19.73 .net
source ~/.zshrcはエイリアスに入れてるわ
これで誤爆の心配もないね!
651:名無しさん@お腹いっぱい。
19/08/04 13:56:32.83 .net
>>650
エイリアスは忘れちゃわない?
652:名無しさん@お腹いっぱい。
19/08/04 14:02:16.19 .net
>>648
いや history じゃなくてわざわざ tail .zsh_history を使うのってどういう時なの?
何にせよ .zsh_history を開きたいときは command $HISTFILE<tab> でもいいと思うけど
653:名無しさん@お腹いっぱい。
19/08/04 14:09:43.14 .net
>>651
確かに忘れるけど、セーフティ的な意味なら充分役立ってくれるかなと思って……
654:名無しさん@お腹いっぱい。
19/08/04 14:15:12.35 .net
>>652
ヒストリ関連のオプションをいじってたとき、内部ヒストリがファイルに保存されているかを確認するために tail .zsh_history と history を見比べてた。
テンポラリのヒストリファイルを複数作って実験していたので、tail $HISTFILE はその用途では使いにくい。
このような需要はあまりないとは思うけど、補完を絞る方法がもしあるならモアベターだと思うんだ。
>>651
ひょっとしてサフィックスエイリアスかな? それはよさそう
$ alias -s zshrc=source
$ ~/.zshrc
(source ~/.zshrc が行われる…)
655:651
19/08/04 14:17:15.29 .net
>>653 なるほど
656:名無しさん@お腹いっぱい。
19/08/04 18:43:47.12 .net
HISTFILE=~/.zsh/history_zsh
って感じで場所と名前変えてる
657:名無しさん@お腹いっぱい。
19/08/04 20:08:58.07 .net
ZSHを使わない
658:名無しさん@お腹いっぱい。
19/08/18 23:52:53.56 .net
zshクソ。誰もが使いそうな変数名を特殊扱いすんな
statusとかpathとかsecondsとか
659:名無しさん@お腹いっぱい。
19/08/19 00:28:59.18 .net
parametersとoptionsもあった
660:名無しさん@お腹いっぱい。
19/10/19 20:04:44.61 .net
遅レスですまないけど、.zhistoryって行頭が:になってるからsourceしてもスルーするんじゃないの?
:って何もしないって機能だよね
661:
19/10/20 18:48:22 .net
EXTENDED_HISTORY <C>
Save each command's beginning timestamp (in seconds since the epoch) and the duration (in seconds) to the history file. The for‐
mat of this prefixed data is:
`: <beginning time>:<elapsed seconds>;<command>'.
: ... : ... ; rm -rf /
いかんでしょw
662:名無しさん@お腹いっぱい。
19/10/22 13:36:40.23 .net
>>660
> :って何もしないって機能だよね
なにも "出力しない" 機能であって何もしない機能ではない。
: $(touch /tmp/ttttt)
は実際にファイルを作成する。コメントの代わりには使えない。
そもそも>>661が言ってる通り、;で区切られてるから動く
663:名無しさん@お腹いっぱい。
19/10/22 13:37:43.51 .net
まあ、: コマンド自体が何もしないってのはそのとおりだけど
一行全体で見ると、引数部分を実行するという話
664:名無しさん@お腹いっぱい。
19/10/23 06:15:25.06 .net
:はなにもしないし引数をすべて無視するけどシェルが:の引数と解釈しなかった部分が実行される
よって;とか&&とか$()とか<()とかいろいろ実行される
665:名無しさん@お腹いっぱい。
19/10/26 21:27:09.03 .net
: を使うシーンって何?
意味は知ってたが使ったことない
666:名無しさん@お腹いっぱい。
19/10/26 22:13:29.87 .net
>>665
変数の代入と停止の無効化
667:名無しさん@お腹いっぱい。
19/10/26 22:58:50.57 .net
>>665
trueの代わり
668:名無しさん@お腹いっぱい。
19/10/26 23:55:09.51 .net
>>665
ファイルサイズを0にする
669:665
19/10/27 00:54:52.87 .net
そういや普通にwhile : ;do~みたいに手癖で使ってたわ
あと昔書いてたシェルスクリプトでも冒頭でset -eを設定しておきつつ
エラーで止まってほしくない箇所で : を使ってた
てかzsh関係ないですねすんません
670:名無しさん@お腹いっぱい。
19/11/10 00:49:14.12 .net
zshが馴染みすぎるとbash、それも素の設定を使わざるを得ない状況になるとストレスがすごいよね
鯖缶の方とかそういうシチュエーション多そうだけどどうやって折り合いつけてるんだろう
671:名無しさん@お腹いっぱい。
19/11/10 15:56:08.74 .net
>>670
zshは基本入ってないんで、bashに戻りつつあるw
672:名無しさん@お腹いっぱい。
19/11/10 23:38:07.15 .net
自作のZpluginプラグインのほぼ全てが壊れたまま運用していて、
むしろスッピンより不便なはずだが、何も感じなくなってしまった
インタラクティブ環境は、慣れやすいものなのかも
673:名無しさん@お腹いっぱい。
19/11/13 00:02:51.13 .net
Macのデフォルトシェル採用って結構影響でかいような
問題なければ追従するUnixやLinuxの鳥も出てくるじゃないかと
674:名無しさん@お腹いっぱい。
19/11/13 03:58:48.06 .net
それはないなー
bashとの互換性がね。shwordsplit、あれが最悪だね。
理屈はわかるんだけどね。互換性の点から見れば最悪。
うん。互換モードはあるよ。でもデフォルトじゃないんで代替にできない。
そこまでして変える必要性がない。
675:名無しさん@お腹いっぱい。
19/11/13 04:02:15.99 .net
そもそもさ、みんな潔癖だからね。POSIX準拠。そっち優先。
debianとかubuntuは bashよりも機能が低いdashとかにしようとしてるぐらい
ログインシェルはまあ自由に使っとくれって感じだろうけど
デフォルトシェルはPOSIX準拠。これ一択なんでzshにはならんよ
遅いしね。
676:名無しさん@お腹いっぱい。
19/11/13 04:03:39.70 .net
Macのログインシェルは、はたから見ると、あぁ可哀想
bashのライセンスが受け入れられなかったから
消去法でzshなんだね。ぐらいにしか思ってない。
zshを選びたくて選んだなんて誰も思ってないんだよ。
677:名無しさん@お腹いっぱい。
19/11/14 17:48:54.18 .net
zshで何も困らない
強いて言うならQiitaとかのzsh初めて使った人の記事が初心者すぎて目障りなくらいw
678:名無しさん@お腹いっぱい。
19/11/16 03:47:19 .net
Macユーザのウザさ、もとい声のデカさを信じようじゃないか
679:名無しさん@お腹いっぱい。
20/05/01 03:17:08.65 .net
plugin managerをzinitに変えたら起動が爆速になった
オススメ
680:名無しさん@お腹いっぱい。
20/05/03 05:08:47.72 .net
単なる興味なんですがzshの2系より前って手に入らないですかね?
681:名無しさん@お腹いっぱい。
20/05/03 05:09:03.16 .net
2系を含みます
682:名無しさん@お腹いっぱい。
20/05/03 08:13:07.84 .net
zshの2系、やっと見つかりました。
URLリンク(web.archive.org)URLリンク(www.cs.elte.hu)
683:名無しさん@お腹いっぱい。
20/05/05 22:51:09 .net
zshにBASH_ENVに相当する機能はありますか?
つまりzshでシェルスクリプトを非対話型で実行した時に
任意の処理を先立って実行したいのです。
684:名無しさん@お腹いっぱい。
20/05/06 07:12:37 .net
>>683
~/.zshenv かな
URLリンク(zsh.sourceforge.net)
スクリプト実行時に限らず対話シェル起動時にも読まれるけど
INTERACTIVEオプションの状態をチェックするifで括ればよさそう
if [[ ! -o INTERACTIVE ]]; then
echo non-interactive
fi
685:名無しさん@お腹いっぱい。
20/05/06 08:45:36 .net
>>684
ありがとうございます
既存の ~/zshenvは修正できないという制約があるのでINTERACTIVEの
チェックは出来ませんが、ZDOTDIRを書き換えればなんとかなりそうなきがします
つまりBASH_ENVをセットして起動の代わりに
/tmp以下に一時的にファイルを作ってZDOTDIRをセットして実行
初期化処理の中で一時ファイルを削除したりZDOTDIRを元に戻したりとかです
686:名無しさん@お腹いっぱい。
20/05/10 02:59:44.09 .net
10より大きいファイルディスクリプタを使うにはどうすればいいの?
687:名無しさん@お腹いっぱい。
20/05/10 03:14:41.32 .net
事後怪傑しました!
688:名無しさん@お腹いっぱい。
20/06/09 19:06:54.37 .net
あー、もうやだ、クソzsh。なんでこんなこともできねーんだよクソ
しかも5.5?ぐらいから挙動変わってるし、バグなんかこれ
changelogみてもなにもわからねーしー、どうすればちゃんと取得できるんだよ
689:名無しさん@お腹いっぱい。
20/06/09 21:59:20.23 .net
クソなレス
690:名無しさん@お腹いっぱい。
20/06/09 22:18:51.92 .net
うるせーばーか、こっちはzshがクソで困ってるんだ
bashの方がいいな
691:名無しさん@お腹いっぱい。
20/06/10 01:10:37.06 .net
好きなの使えよ
692:名無しさん@お腹いっぱい。
20/06/10 06:47:54.01 .net
何がやりたいのかさっぱりなうんこだな
693:名無しさん@お腹いっぱい。
20/06/16 00:13:26.25 .net
zshは機能が多すぎて覚えられない
お勧め設定をAI的に徐々に教えてくれたらいいのに
「そのやり方、こんなふうにもできますよ?次回からこうします?」って
694:名無しさん@お腹いっぱい。
20/06/28 06:13:09 .net
fishどう?
695:名無しさん@お腹いっぱい。
20/06/28 08:33:56.89 .net
色付きとか好きじゃないので俺はあんまり
696:名無しさん@お腹いっぱい。
20/06/28 08:56:18.58 .net
互換性を切り捨ててるものは結局デフォルトになることはないしね
zshも互換性が完璧とは言えないから驚かれたぐらい
bashがライセンス上の都合で選択できない以上どうしようもなかったんだろうが
697:名無しさん@お腹いっぱい。
20/07/02 16:31:10.99 .net
Gay fish YO!
698:名無しさん@お腹いっぱい。
20/07/07 04:27:47.52 .net
下記はとある本にのってる zsh のプロンプトの設定なんですが、一番右の % はなんなのでしょうか?
いらない気がするのですが? 誤植?
# プロンプトの右はじに、false なら終了ステータスを表示。
RPS1="%(?..(%?%))"
699:名無しさん@お腹いっぱい。
20/07/07 06:07:17 .net
>>698
%( に対応する閉じ括弧だと解釈されるのを防ぐエスケープ
700:名無しさん@お腹いっぱい。
20/07/07 15:42:07.86 .net
ksh にすればいいのに()
701:名無しさん@お腹いっぱい。
20/07/07 20:58:59.88 .net
Mortal Shell のオープンβテスト開始!
zsh から乗り換えよう!
URLリンク(news.yahoo.co.jp)
702:名無しさん@お腹いっぱい。
20/07/07 22:09:19.90 .net
>>700
kshはメンテも終わった終わったシェルだから
703:名無しさん@お腹いっぱい。
20/07/08 00:17:05.82 .net
>>702
KornShell 2020 - Impossible Happens!
URLリンク(situ.im)
704:名無しさん@お腹いっぱい。
20/07/08 00:49:54.46 .net
>>703
AT&Tがそれを全て取り消して93u+をベースに最初からやり直し、だがそれも頓挫かな
ksh2020はkshの派生の別物扱い。zshもksh(tchs)の派生だから兄弟のようなもんかw
705:名無しさん@お腹いっぱい。
20/07/08 00:51:09.23 .net
>>704
zshはコード自体は全く別物だったか。フォークという派生とはちょっと違うか
706:名無しさん@お腹いっぱい。
20/07/08 16:15:54.16 .net
command.com 最強!
707:名無しさん@お腹いっぱい。
20/07/08 17:28:21.63 .net
最凶
最凶と呼べるほどにもない全然 使えない おもちゃか
708:名無しさん@お腹いっぱい。
20/07/09 15:06:08.46 .net
パッケージ: ksh (2020.0.0+really93u+20120801-6)
URLリンク(packages.debian.org)
これはksh2020なのか93uなのか
709:名無しさん@お腹いっぱい。
20/07/09 15:12:23.68 .net
Debian offers ksh2020[20] in its testing version.[21]
710:名無しさん@お腹いっぱい。
20/10/14 06:23:19.65 .net
ksh2020は完全に放棄されてんな
ASTからバグフィックスのためだけにフォークしたおじいちゃんが一番地道に現在活動的
711:名無しさん@お腹いっぱい。
20/11/04 19:33:06.67 .net
これなんなの?
URLリンク(github.com)
712:名無しさん@お腹いっぱい。
20/11/05 00:19:08.19 .net
>>711
>>704
AT&Tからフォークしてあくまでもメンテナンスだけを現在熱心にやってるのは
URLリンク(github.com)
かな。それの冒頭に>>711のことも書いてる
713:名無しさん@お腹いっぱい。
20/11/05 08:03:32.52 .net
一体いくつあるんだよw
オリジナルはまあいいとして
そこからの派生
714:名無しさん@お腹いっぱい。
20/11/05 13:49:41.45 .net
オリジナル : 頓挫、終了
オリジナルのちゃんとしたメンテ : 無い、まだ無い
色々やった 2000 : 頓挫
地道に一人で : 地道に継続中
だけだよ。てか、いい加減過疎ってる ksh スレに行けよw zshなんも関係ないぞ
715:名無しさん@お腹いっぱい。
20/11/05 13:52:24.25 .net
色々やった 2020
ね
716:名無しさん@お腹いっぱい。
20/12/09 09:17:20.05 .net
URLリンク(i.imgur.com)
717:名無しさん@お腹いっぱい。
20/12/11 13:03:32.87 .net
>>478
oh my zshとかGrmlの話題もまったくなく何話してたんだここ
>>479
使ってないわけないんだが
何故かこんなのしかいなかったからこのざまだったんだろうな
718:名無しさん@お腹いっぱい。
20/12/11 15:05:10.75 .net
zshで拡張した部分を使えば便利だが、zshしか使えない体になってしまうからなw
719:名無しさん@お腹いっぱい。
21/01/03 01:20:30.63 .net
MacでCUIアプリをダブルクリックした際の挙動と、
インタラクティブシェルで起動した際の挙動を変えたいのだけれどフラグとなる
環境変数がなになのかわからん。
720:名無しさん@お腹いっぱい。
21/01/03 04:34:42.56 .net
どちらかで変わるわけ無いやろ
721:名無しさん@お腹いっぱい。
21/01/03 19:34:32.29 .net
>>720
やっぱりそうですかわかりました。
722:名無しさん@お腹いっぱい。
21/01/05 10:19:41.81 .net
bashしか使ったことなかったけど
Macがzshなものでドキュメントみてたけど
ページ量多すぎだろ
723:名無しさん@お腹いっぱい。
21/01/05 10:50:40.81 .net
機能が豊富ですから
機能が豊富なzsh固有のに慣れてしまうと他が使えない体質になりそうで使わないけどw
724:名無しさん@お腹いっぱい。
21/01/10 11:20:57.77 .net
誰もいない海だ
725:名無しさん@お腹いっぱい。
21/01/24 12:55:43.62 .net
ここzshの本スレですか?随分人いないですね。
どこか別にコミュニティあるんですか?
726:名無しさん@お腹いっぱい。
21/01/25 16:57:13.71 .net
>>717
今だとzinitがホットかな
でもまぁフレームワークなんて流行り廃りがあるのだし、ライトユーザが無理に使う必要もないよね
727:名無しさん@お腹いっぱい。
21/01/25 18:29:50.97 .net
oh my zshとかzinitってなんのために使うんだろう?
プロンプト決めるだけでしょ?
728:名無しさん@お腹いっぱい。
21/01/30 13:28:04.12 .net
一通り環境作り上げて不満なくなると更新とか動向全くチェックしなくなってしまう
せめて数年に一度は見直さないといかんわな
この腰の重さは老化のバロメータか
729:名無しさん@お腹いっぱい。
21/03/30 01:24:21.91 .net
人が書いたやつはちゃんと追いかけておかないといつまにか別物になってる可能性があるな
730:名無しさん@お腹いっぱい。
21/07/06 23:56:33.91 .net
もう一年も更新ねーじゃん
ついにオワコンかzsh
731:名無しさん@お腹いっぱい。
21/07/07 06:04:31.45 .net
お前のようにここに書くようなネタが無いだけ
使ってるヤツはそれなりにいる
5chだけが世界の全てのお前にはわからんだろうけど
732:名無しさん@お腹いっぱい。
21/07/07 06:13:11.87 .net
zshのそのものの更新が一年無いって話か
それでオワコンだって言ってるのか
それもまたあたおかな発想だな
733:名無しさん@お腹いっぱい。
21/07/08 03:40:04.43 .net
unix板らしからぬ脊髄反射w
734:名無しさん@お腹いっぱい。
21/08/11 01:59:23.33 .net
URLリンク(news.mynavi.jp)
これ見ながらpowershellを普段のzshのようにしようかと企んだけど途中でアホ臭くなってやめた
ちっとも好きになれんわpowershell
735:名無しさん@お腹いっぱい。
21/08/29 19:58:48.95 .net
普段のユーザとしては zsh と (pd)ksh しか使ってない。
tcsh から乗り換えて zsh はもう17年だよ…
そろそろ bash 勉強しなきゃダメかな…
736:名無しさん@お腹いっぱい。
21/12/19 14:28:58.73 .net
zsh を Mac のデフォルトシェルとして使う
URLリンク(support.apple.com)
macOS Catalina から、Mac は zsh をデフォルトのログインシェルおよびインタラクティブシェルとして使うようになります。
それ以前のバージョンの macOS でも、zsh をデフォルトにすることができます。
737:名無しさん@お腹いっぱい。
22/03/26 01:00:13.42 .net
URLリンク(i.imgur.com)
738:名無しさん@お腹いっぱい。
22/04/14 10:56:14 .net
ZLE使えばコマンドライン入力を編集できますが、
ZLEウィジェットとして登録した関数を直接呼び出して zle を呼び出すとエラーが発生します。
外部からコマンドラインを編集する方法はないのでしょうか?
739:名無しさん@お腹いっぱい。
22/06/14 14:22:28.69 .net
UNIXシェルの並列化により最大34倍高速化する「PaSh」
URLリンク(www.itmedia.co.jp)
740:名無しさん@お腹いっぱい。
22/07/12 17:18:44.41 .net
pashなんてあるのか
いい感じならzshもパクってくれ
741:名無しさん@お腹いっぱい。
23/05/14 13:48:22.62 .net
どうでもいい
742:名無しさん@お腹いっぱい。
24/01/13 01:06:11.34 .net
psprint死んだらしいな
Rest in Hell
743:名無しさん@お腹いっぱい。
24/03/27 19:33:41.03 .net
あれは歯が合わなくても保険等級が下に力が入ったのに
そういう
本当にアンチだと思われたいんだろうな
ハムはなんで今更貼るの?
今買えの馬鹿も何もしないかぎり騒がんだろうな
744:名無しさん@お腹いっぱい。
24/03/27 21:05:18.12 .net
リバウンドせずに大風呂敷広げるからこんなもんでもないままだろうね。
「もう少し待っといて昔の人気漫画だから若い子は食いつかないもんなの
求めないから実質ずっと雨なんだが
やってることは結局すぐダメになると思うが
745:名無しさん@お腹いっぱい。
24/03/27 21:42:33.04 .net
キチガイ荒らしてるって事だ
そういう訳では
746:名無しさん@お腹いっぱい。
24/03/30 23:36:02.54 .net
zshの生成AI系サジェストってないの?
そろそろ出てきていいように思う
747:名無しさん@お腹いっぱい。
25/02/18 00:39:33.59 .net
zshのshell scriptなんですけど
fn() {
arg1=$1
echo $arg1
}
hoge='abc 123'
t=$(fn $hoge)
echo $#t
2
となるんだけど
どうも半角スペースで分解されてる
半角スペースをエスケープする方法教えて
もう涙目
748:名無しさん@お腹いっぱい。
25/02/18 02:02:22.21 .net
$( )全体をダブルクオートでくくる
749:名無しさん@お腹いっぱい。
25/02/18 02:53:28.36 .net
いやまてzshは括らなくても分割されないはず、と手元で>>747を実行したら2ではなく7になったぞ?
750:名無しさん@お腹いっぱい。
25/03/19 09:57:06.64 LDQ16VarS
医療費総額36兆圓た゛そうて゛数千圓て゛人類史上最悪の人権侵害テ囗に加担て゛きるほど余裕綽々で暴利を得てるクソ航空テ□リストに余裕で
支払わせることか゛可能な額た゛わな莫大な温室効果カ゛スまき散らして気候変動、海水温上昇させて土砂崩れ.洪水、大雪.熱中症にと災害連発
させて人殺しまくってヱネルギ━に水産物に農作物にと高騰させてウイルスに騷音にとまき散らして海に囲まれた日本て゛四六時中わざわさ゛
陸域飛ばしまくって閑静な住宅地まで轟音まき散らして睡眠妨害してス├レス増大させて免疫カ低下させて病人増やして國民の生命財産を
強奪して私腹を肥やす強盜殺人テ口に━回加担するのに安くて数十萬かかる社會にすることて゛解決するとか極めて合理的た゛ろ
しかもどこに転居しようが回避不可能な航空騒音によって静音か゛生命線の知的産業が根絶やしにされて国際竸争カ壞滅させられて
アプリと゛ころかサヰトすら自カて゛作れず裏でグ─グルやらに依存して個人情報たれ流してたりこんなポンコツと゛もか゛サイバ‐セキュリティに
予算た゛のボケに誰か突っ込んでやれよって国会の茶番劇まずはぶっ壊れてるドアと頭と゛うにかすること覚えろや
(ref.) URLリンク(www.call4.jp)
URLリンク(haneda-project.jimdofree.com) , URLリンク(flight-route.com)
URLリンク(n-souonhigaisosyoudan.amebaownd.com)