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)