X



トップページLinux
390コメント88KB
【Shell】どのシェル使ってる?【Script】
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
垢版 |
03/10/28 17:45ID:DZdBw1H1
おまいらが使ってるShellを晒せや(#゚Д゚)ゴルァ!!
そして便利なShell Scriptがあれば晒して( ゚Д゚)ホスィ…
GUI Shellも使ってる香具師はそいつも晒せ(゚∀゚)アヒャヒャ
0340login:Penguin
垢版 |
2016/03/31(木) 23:22:38.68ID:WZjiZRHi
eshell
0341login:Penguin
垢版 |
2016/04/11(月) 16:23:25.70ID:99C720fr
変数##*/ とはどういう意味でしょうか?
0342login:Penguin
垢版 |
2016/04/11(月) 18:04:02.37ID:+7cEZsLh
>>341
俺が個人的に使ってるメモ

例1はvarに /foo/bar/baz が入っている場合
例2はvarに foo/bar/baz が入っている場合

${変数名#パターン} ・・・ 先頭パターンマッチ部分(最短)を削除
例1 ${var#*/} => foo/bar/baz
例2 ${var#*/} => bar/baz

${変数名##パターン} ・・・ 先頭パターンマッチ部分(最長)を削除
例1 ${var##*/} => baz (basename相当)
例2 ${var##*/} => baz

${変数名%パターン} ・・・ 末尾パターンマッチ部分(最短)を削除
例1 ${var%/*} => /foo/bar (dirname)
例2 ${var%/*} => foo/bar

${変数名%%パターン} ・・・ 末尾パターンマッチ部分(最長)を削除
例1 ${var%%/*} =>
例2 ${var%%/*} => foo
0343login:Penguin
垢版 |
2016/04/11(月) 18:16:59.15ID:99C720fr
>>342
ありがとうございました。
助かりました。
0344login:Penguin
垢版 |
2016/10/04(火) 14:38:41.57ID:0nDXV+TT
fish 使うことに決めますた。(*´ェ`*)
0345login:Penguin
垢版 |
2016/10/04(火) 20:38:48.28ID:0nDXV+TT
    fish is a smart and user-friendly command line shell.

         ※. ______
        //ー|)◎))3333Ξ<The law of orthogonality ≡≡≡
       // _二二二二二 ̄
      //ー|)◎))3333Ξ<The law of responsiveness ≡≡≡
     // _二二二二二 ̄
    //ー|)◎))3333Ξ<Configurability is the root of all evil ≡≡≡
   // _二二二二二 ̄
  //ー|)◎))3333Ξ<The law of user focus ≡≡≡
 // _二二二二二 ̄
//ー|)◎))3333Ξ<The law of discoverability ≡≡≡
./   ̄ ̄ ̄ ̄ ̄ ̄

http://fishshell.com/docs/current/design.html
0346login:Penguin
垢版 |
2017/01/23(月) 13:50:26.90ID:qmKdCQ4w
Bash(バッシュ), Tcsh(ティッシュ), Zsh(ゼッシュ)
読み方合ってますか?
0348login:Penguin
垢版 |
2017/06/03(土) 10:12:10.07ID:CTKi8+5I
ネガキャンと受け取られても仕方無い主張なんだが,
csh って C に似た解釈をする Shell なんだよな。便利っていう人間がいるけど,
そもそも C がインタプリンタ的な動作をするのに向いてない以上,ALGOL 的な挙動の sh の方が Shell として本質的だと思うのだがどうだろう。
0349login:Penguin
垢版 |
2017/06/03(土) 23:59:11.30ID:qaLU01X5
ログインシェルとしてcshを使うのは好みだから止めないが
スクリプトはshで作るのが当たり前だと思うのだが、
そういう判断が出来ない人も多いんだよね。
0350login:Penguin
垢版 |
2017/06/04(日) 19:35:02.42ID:Si6q7fiX
cshってそんなにCに似てるか?
0352login:Penguin
垢版 |
2017/06/05(月) 12:01:32.64ID:TyB4uMQj
>>351
使用例のページ見て声出してしまった。
すごいね。
0353login:Penguin
垢版 |
2017/06/05(月) 12:33:07.89ID:w9CAiiZB
ここまでくるとtccと競合する

#!/usr/bin/tcc -run
#include <tcclib.h>
int main()
{
    printf("hello,world!\n");
}
0354login:Penguin
垢版 |
2017/06/21(水) 12:27:45.10ID:KskEFw+V
TCC って開発停止してるみたいだな。ccsh はもっと前に最終安定板出して音沙汰ないし。
やっぱ shell も OS とかと一緒で一極集中な感じなのかね。今だったら b(d)ash/zsh/fish くらいか。
0355login:Penguin
垢版 |
2017/06/22(木) 12:04:22.06ID:25+3d/eJ
kshもオリジナルの作者がメンテしてると聞いたことが有る
0356login:Penguin
垢版 |
2017/06/22(木) 17:48:09.47ID:M6sGnbPT
zsh って ksh 系だったけ。
0357login:Penguin
垢版 |
2017/06/23(金) 11:34:02.78ID:q4WKdAKZ
>>354
結局みんなが同じものを使ってるほうが開発者もユーザーも便利だからね
仕方ないね
0358login:Penguin
垢版 |
2017/06/26(月) 01:50:41.64ID:k2/BZBo/
>>355
そうなのかと思って ksh の配布元に行こうとしたらブラウザが落ちた。
w3m でさえ読み込まないww

ttp://www2.research.att.com/sw/download/notes.html
0359login:Penguin
垢版 |
2017/06/26(月) 08:41:38.40ID:M+n4Umzb
shが最低限必要知識
Bashマスターなら申し分ない
0360login:Penguin
垢版 |
2017/06/28(水) 17:22:03.88ID:cw2bOnvO
インタプリンタは fish。
Shell script 書くときはなるべく sh、条件文でどうしても実現できないことがあるときは仕方無く bash。
0361login:Penguin
垢版 |
2017/06/28(水) 21:27:44.50ID:eMfd45Lz
条件文でbashを使おうと思ったことはないな。

複雑なデータ構造を扱う時に
配列やハッシュを使わないと(不可能でなくても)
やってられないと思った時にbashを使う
0362login:Penguin
垢版 |
2017/06/28(水) 22:00:27.95ID:e29kg8PJ
/bin/shは絶対にdashにしてほしい
mkshにした場合、なんだかのビルドが通らなかった気が
0363login:Penguin
垢版 |
2017/06/28(水) 22:11:13.44ID:cw2bOnvO
>>361
無知を晒してしまった……orz
捨て恥ついでに聞くが
if [[ "$VAR" =~ (hoge|^huga|.*piyo) ]]; then
処理
fi
みたいな正規表現を含んだ条件文って /bin/sh でどう実現してる?
perl 使えって言われたらそれまでなんだが。
0364login:Penguin
垢版 |
2017/06/28(水) 22:12:50.28ID:eMfd45Lz
特に必要でない限りsh(dash)で動くように書いてるけど、
bashがどこにでもある時代に、無駄だなーって気もしてる。

だからshで作られたbashインタプリタとか、
bashをshに変換してくれるコンバーターとか無いものだろうか?
(別にbashである必要はないけれど)

JavaScriptの世界では新しいJavaScriptの文法を
古いブラウザ向けに変換するトランスパイラや
複数のファイルを結合するビルドシステムってのがある。

それみたいに改良されたスクリプト言語で記述したコードを
shで動作するように変換してくれるビルドツールでないかな?
0365login:Penguin
垢版 |
2017/06/28(水) 22:20:24.36ID:eMfd45Lz
>>363
> 無知を晒してしまった……orz
別に考え方の違いで無知とは思わんが

> みたいな正規表現を含んだ条件文って /bin/sh でどう実現してる?
そもそも正規表現使うまでのことをしないってのがあるが
前方一致、後方一致、中間一致程度なら、case文を使う。

そのifであれば、これでいけるはず

case $VAR in
hoge | huga* | *piyo) echo ok
esac

どうしても正規表現が必要なら、
grepとかsedとかawkとか内部で呼び出す
0366login:Penguin
垢版 |
2017/06/28(水) 22:40:16.07ID:cw2bOnvO
>>365 いけた。ありがとうございます。
可読性を考えると確かに sed 使った方が良いかもしれないですね。(最初と言ってること違うけど……)
0367login:Penguin
垢版 |
2017/06/28(水) 22:56:01.53ID:eMfd45Lz
>>366
いやw 可読性考えたら正規表現はbashのほうがいいよw
俺の場合、必要なければshにしていて、たいてい必要ないので
shになってるってだけ。
0368login:Penguin
垢版 |
2017/06/28(水) 23:47:05.36ID:JGK5oyyj
expr $var : '.*hoge.*' \| $var : huga \| $var : '.*piyo' >/dev/null \
&& echo echo 間違ってたらごめん。
0369login:Penguin
垢版 |
2017/06/29(木) 00:09:03.51ID:yEAGtShg
それかテキストファイルに、
a.piyo
aa.piyo
ab.piyo
aaa.piyo
aab.piyo
aba.piyo
みたいに一通り作っておいてgrepで探すとか。
0370login:Penguin
垢版 |
2017/06/29(木) 00:10:01.60ID:yEAGtShg
思いついたプレーの中で、いつも一番難しいものを選択することにしている。
by ロベルト・バッジヨ
0372login:Penguin
垢版 |
2017/06/29(木) 02:01:12.18ID:c1g0c9KP
>>369
ごめん条件反射で書き込んだら めちゃめちゃ馬鹿にした言い方だった。
笑ったよということです,すいません。
あと,正規表現使ってやりたいことが,
「$TERM の値が xterm/rxvt/st 系列だったら fish を起動する」
っていう内容だから,あんまりテキストファイルは使いたくない。
0373login:Penguin
垢版 |
2017/06/29(木) 02:15:17.60ID:yEAGtShg
Cで書いたらどうだ。
0374login:Penguin
垢版 |
2017/06/29(木) 06:55:19.76ID:yEAGtShg
# grepの-Eを使えば似たような事は出来るけど、
# 逆に$TERMで探したほうが楽な気がする。
<<EOF |grep -q $TERM && echo fith
xterm
rxvt
st
EOF

# makefileで書くと以下のような。
fish_term = xterm rxvt st
SHELL = $(if $(filter $(TERM),$(fish_term)),/bin/fish,/bin/sh)
0375login:Penguin
垢版 |
2017/06/29(木) 10:13:17.50ID:enVJAN/l
fishでtail -fからgrep --line-bufferedにパイプで繋ぐときに
単純にパイプで繋ぐとbufferedになってしまうんだけど
unbufferedにするにはどうしたらいいのかなぁ?
0376login:Penguin
垢版 |
2017/06/29(木) 12:47:12.83ID:c1g0c9KP
正規表現がどうのと言っていた者ですが端末側のソースを書き換えました。
色々提案して貰ったのにすいません。
0377login:Penguin
垢版 |
2017/06/29(木) 23:00:35.67ID:tzPByQ9Q
>>374

<<EOF |
ってなんだその書き方?って思ったらzsh用か?
sh(dash)やbashじゃ動かないよね?

sh互換にするならこうかな?

cat <<EOF |grep -q $TERM && echo fith
xterm
rxvt
st
EOF
0378login:Penguin
垢版 |
2017/06/30(金) 00:28:16.84ID:sFKxRYwA
すっげえ前のブログなんだがこれ読んでどう思った?
俺はやっぱ #!/bin/sh - でいいじゃんって感じがしたんだが。
単に慣れの問題だと言わずにちょっと意見して欲しい。
http://hkoba.hatenablog.com/entry/2016/01/31/144919
0379login:Penguin
垢版 |
2017/06/30(金) 01:53:23.35ID:S6e32skL
>>378
あまりろくに読んでないがw

シェルスクリプトを使う理由は、
通常シェルでやっている手作業を
そのままスクリプトにできるからだよ。

手作業の自動化がシェルスクリプトのメリットなわけで
手作業ではやらないような書き方が盛りだくさんであれば
そんなのをわざわざシェルスクリプトとして書く必要はないよ。
0380login:Penguin
垢版 |
2017/06/30(金) 02:51:56.53ID:s9sy2MO7
同意
対話シェルにBシェル系を使いつつスクリプト用にはcshを使うなんてのは
ありえないのよね
だったらもっと強力なperl|ruby|python覚えたほうが早いってやつ
Bシェル系をスクリプティングに使い続けながら、それと互換性の乏しい
fishへ移行するのをためらってるのも同じ理由で
0381378
垢版 |
2017/06/30(金) 17:57:05.13ID:sFKxRYwA
>>379-380
ありがとう。参考になった。
自分はインタプリンタは fish,Shell script は (da)sh だが,あんまり混乱しないかな。
だが && を ;and とやるのは最初慣れなかった。
# ↑といっても && とやると
# fish: Unsupported use of '&&'. In fish, please use 'COMMAND; and COMMAND'.
# ls && cd
# ^
って言って呉れるから助かった。
0382login:Penguin
垢版 |
2017/06/30(金) 18:39:48.28ID:OYsM1Fla
>>353
まじかtccってそんな使い方出来たのか。今凄い嬉しいわ。
0383login:Penguin
垢版 |
2017/06/30(金) 18:57:17.24ID:OYsM1Fla
これすげぇ。これすげぇよ。利用しまくるわ。
0384login:Penguin
垢版 |
2017/06/30(金) 20:49:27.35ID:sFKxRYwA
TCC はかなり昔に開発停止してるからやめといた方が……。
0385login:Penguin
垢版 |
2017/07/01(土) 06:59:47.09ID:Ra5NRw8c
君はこれからの人だから。


オレはもう刻一刻と老いていく流れを止められねえ
新しい言語を着こなすことも…
他のOSに思いを馳せることも…
何もできねえ……

オレからcをzshを……linuxをとったらもう何も残らねえ…!!
もうオレには端末しか見えねえー
0387login:Penguin
垢版 |
2017/07/02(日) 03:21:29.56ID:U6RrFykZ
ごめん。デバッグしてて気付くと思考回路ショート寸前で頭おかしくなってる時がある。

もうすぐだ。すぐそこにせまってる。
これか。あーこれか。ここ、こうすればいいのか。よしよし。
うごくはずだ。これこうしたらもう動くに決まってる。
make
ねぇ、なんでーーーー!!!!!!!!!ねぇなんでーー!!!!!!!!!
なっ!んっ!でっ!なっ!の!!!やぁやぁやぁやぁ!!!
0388login:Penguin
垢版 |
2017/07/02(日) 03:24:28.33ID:OB80nxlH
YHA-YHA-YHA
なぐりにいこうかー!
0389login:Penguin
垢版 |
2017/07/04(火) 20:29:35.31ID:7SO5v2e3
ここの本職やべえな。
0390login:Penguin
垢版 |
2017/07/04(火) 21:43:13.63ID:Sfh2xeg2
あるある > デバッグ中は気が立ってる
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況