トップページunix
430コメント116KB

C shell 撲滅委員会

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。NGNG
tcsh とかイラネ
0305名無しさん@お腹いっぱい。2008/04/04(金) 21:49:13
>>304
またまた csh被害者だね。cshを捨てると直るよ。マジで。
03063042008/04/04(金) 23:19:59
FreeBSD でシェルを変えるのってどうしたらいいのでしょう?
0307名無しさん@お腹いっぱい。2008/04/04(金) 23:36:39
シェルを起動する
0308名無しさん@お腹いっぱい。2008/04/05(土) 09:57:46
>>306
chsh

>>307
それだとログインシェルは変わらないし、ログインシェル用の設定ファイルが読まれない。
0309名無しさん@お腹いっぱい。2008/04/05(土) 12:28:45
>>308
どこにログインシェルを変えたいって書いてあるんだよ
0310名無しさん@お腹いっぱい。2008/04/05(土) 13:15:30
>>309
>>304
03113042008/04/05(土) 14:01:12
>>307
>>308
ありがとん

bashに変えてみたけど
.profile再生成とかできないのかな?
結局kahua-packageが起動できないorz
0312名無しさん@お腹いっぱい。2008/04/05(土) 14:37:22
エラーメッセージを秘密にしたまま質問したいならエスパースレで聞くといいよ。
http://pc11.2ch.net/test/read.cgi/unix/1207042632
03133042008/04/05(土) 15:24:16
エラーメッセージではないですが
command not found
と言われます
0314名無しさん@お腹いっぱい。2008/04/05(土) 16:13:13
>>313
やっぱり、初心者にとって、エラーメッセージを示すこと自体困難だよな。
>>312 の言う通り、
【エスパー】くだ質【エラーメッセージ不要】(1)
で質問し直して。
そっちのスレでは「マルチ」って言われないから、再度質問分を書いてもOK。
今回の場合、単にPATHの通し方がわかってないだけみたいだけど、
エスパースレの方に移動してから回答してやるから。
03153042008/04/05(土) 20:39:04
スレを汚してすみません。
移動しましたので宜しくお願い致します
0316名無しさん@お腹いっぱい。2008/04/05(土) 20:57:35
ここは糞スレだから汚れてはいないw
0317名無しさん@お腹いっぱい。2008/04/05(土) 21:04:15
tcshのports送りマダー?
0318ウサチャソ ◆/0IEZmXnQ6 2008/04/06(日) 19:41:08
csh が存在する理由が解らない。
老人ホーム以外の意味なんてあるんだろーか?
0319名無しさん@お腹いっぱい。2008/04/06(日) 19:46:53
普通に便利だと思うが
0320名無しさん@お腹いっぱい。2008/04/09(水) 12:04:17
普通にしか便利じゃないのに文法が違う
0321名無しさん@お腹いっぱい。2008/04/18(金) 01:03:17
インタラクティブな場合には便利とかいう意見もあるけど、
それはbsh系が貧弱だった過去の評価を未だに盲信してるだけじゃないのかな。
職場でしばらくtcshを使っていたが
結局自分でHOMEの下に違うの入れちゃった。
0322名無しさん@お腹いっぱい。2008/04/27(日) 14:11:43
半年前にcsh&tcsh Manual&Referenceをブックオフにて
100円で購入した僕が通りますよっと。
0323名無しさん@お腹いっぱい。2008/05/20(火) 22:39:41
cshは必要です。
0324名無しさん@お腹いっぱい。2008/05/24(土) 10:35:08
% alias lo logout
% alias ls 'ls -AF'
% alias rm 'rm -i'
% alias q99 'echo please | mail -s q99 quest@B'
% alias quest 'echo please | mail -s \!* quest@B'
% alias ans 'mail -s \!:1 ans@D'
% alias ppa 'echo \!* echo'
% alias ppb 'echo echo'
このようにコマンドを実行したあとに
ppa sunday ppb
ppb sunday ppa
quest q30
と打つと置換が完了した時にどのような文字列に変わるか、という課題が
わかりません。

aliasが置換コマンドなのはわかります。
ただ、\!*や\!:1がどう影響を及ぼすかが私には推測できません。
どなたかUNIXにお強い方がいましたら
ご教授を願えないでしょうか?
0325名無しさん@お腹いっぱい。2008/05/24(土) 13:30:36
cshの課題出す教授の講義受けるの止めろ
時間の無駄だから
0326名無しさん@お腹いっぱい。2008/05/24(土) 15:47:58
あのう、cshって現場ではもう使われていないんですかぁ?
0327名無しさん@お腹いっぱい。2008/05/24(土) 19:49:25
csh恥ずかしい・・・
0328名無しさん@お腹いっぱい。2008/06/07(土) 01:29:54
普通はksh93、そうでなければ、Bash (3.x)、
パワーユーザはzsh、
感傷に浸りたいひとが、tcsh 。
0329名無しさん@お腹いっぱい。2008/06/10(火) 08:45:10
cshのデメリットって
標準エラー絡みしか思いつかないんだけど他にもある?
0330名無しさん@お腹いっぱい。2008/06/10(火) 08:59:50
csh why not
0331名無しさん@お腹いっぱい。2008/06/17(火) 10:59:44
#!/bin/csh -f

set com=$0

if ($#argv < 1 || $#argv > 3) then
echo Usage:$com start_line total_lines '[file_name]'
exit 1
endif
if ($#argv == 2) then
set s=$1
set t=$2
tail +$s | head -$t
else
set s=$1
set t=$2
set f=$3
cat $f | tail +$s | head -$t
endif

exit 0
echo ------------------

これだとエラーがでます。どなたか改良してください。お願いします。
0332名無しさん@お腹いっぱい。2008/06/18(水) 02:37:22
cshはglobの制御がどうにもしがたい。糞。
0333名無しさん@お腹いっぱい。2008/06/18(水) 03:12:26
#!/bin/sh

com="$0"

if [ $# -lt 2 -o $# -gt 3 ]; then
echo Usage:$com start_line total_lines '[file_name]' >&2
exit 1
fi

if [ $# -eq 2 ]; then
s="$1"
t="$2"
tail +$s | head -$t
else
s="$1"
t="$2"
f="$3"
cat $f | tail +$s | head -$t
fi

exit 0
0334名無しさん@お腹いっぱい。2008/07/15(火) 17:13:57
-------------------------------
echo "running..."

set num = 1

foreach file (*.ppm)
./mser.ln $file img$num.mser
./compute_descriptors.ln -sift -i $file -p1 img$num.mser -o1 mser.img$num.sift
@ num++
end

echo "running..."

set num = 1

foreach file (*.ppm)
./mser.ln $file img$num.mser
./compute_descriptors.ln -sift -i $file -p1 img$num.mser -o1 mser.img$num.sift
@ num++
end
----------------------------------------------
こう書くと
./mser.sh: line 7: syntax error near unexpected token '('
./mser.sh: line 7: 'foreach file(*.pp,)'
と言うエラーが出ます。ボスケテ!
0335名無しさん@お腹いっぱい。2008/07/15(火) 21:32:06
cshか・・・今となっては全てが懐かしい
0336名無しさん@お腹いっぱい。2008/07/15(火) 21:49:37
マルチかよ
0337名無しさん@お腹いっぱい。2008/07/19(土) 22:13:32
おまえらdashって知ってるか?
0338ウサチャソ ◆/0IEZmXnQ6 2008/07/20(日) 05:13:21
>>337
えー初耳なにそれ
0339名無しさん@お腹いっぱい。2008/07/20(日) 23:54:08
昔debianでNetBSDのshのlinux移植版をdashってしてたけど
そのこと?
0340名無しさん@お腹いっぱい。2008/07/28(月) 11:40:07
dash(dead again shell)ってどこかで聞いた覚えがあるけど
なんだか思い出せん
0341名無しさん@お腹いっぱい。2008/09/13(土) 18:03:43
うちの会社では、基幹系の処理をcshスクリプトで実行してます。
6,7年前に汎用機からSoralisに基幹処理を移行したときに、
対話もスクリプトもcshってことになっちゃったみたいです。

3,4年前から対話はtcshでやろう!ってことになってきたのですが、
それもログインシェルの変更ではなくて、
ログイン後に"tcsh"っていちいちタイプしてますよ。
(わたしはbashだけど)

「標準エラー出力が...」なんて言っても、
会社の同僚はみんな汎用機 & JCL & COBOL の人達なので(わたしもそうですが)、
そもそも標準入力・標準出力を理解してないので、話になりません。

まだまだそういう環境もあるのですよ...(最近できたんだけど)
0342名無しさん@お腹いっぱい。2008/09/13(土) 18:39:01
スクリプトはbshで書くようにしないとでしょ...
0343名無しさん@お腹いっぱい。2008/09/13(土) 20:16:34
ナショナル撲滅してパナソニックに統一しろ! みたいなスレだな
0344名無しさん@お腹いっぱい。2008/09/13(土) 20:20:10
>>343
え、それはすでに決定事項で、パナソニックに統一されますが。今年10月からだっけ?
0345名無しさん@お腹いっぱい。2008/09/13(土) 21:53:00
Soralisならしょうがないな
0346名無しさん@お腹いっぱい。2008/09/13(土) 23:06:13
csh(tcsh)も、期限を切ってサポート終了すればいいのだな。
0347名無しさん@お腹いっぱい。2008/09/13(土) 23:16:41
池田大作が「宗教は自由」って言ってた
0348名無しさん@お腹いっぱい。2009/02/11(水) 17:45:33
cshの勉強をするのにお勧めの書籍ってある?
0349名無しさん@お腹いっぱい。2009/02/11(水) 18:27:25
C SHELL フィールドガイド とか?
でもなんだっていまさらcshなの?
SI会社で昔のcshスクリプトでもメンテナンスしなきゃならないの?
0350名無しさん@お腹いっぱい。2009/02/11(水) 21:10:55
http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/
0351名無しさん@お腹いっぱい。2009/02/11(水) 21:16:37
汚れ仕事は金になる〜
0352名無しさん@お腹いっぱい。2009/03/06(金) 23:26:10
いわゆるラッパースクリプトで、
コマンドライン引数をそのまま、
引数に含まれるスペースや記号に解釈を加えないで、
別のコマンドの引数として引き渡す場合、
/bin/shなら、

command "$@"
としますが、

これ、cshスクリプトだとどう記述するんですか?
0353名無しさん@お腹いっぱい。2009/03/07(土) 20:28:05
>>352
$argv
man を見るんだ。
0354名無しさん@お腹いっぱい。2009/03/07(土) 20:58:39
>>353
$argvでは、引数に含まれるスペースや記号が解釈されてしまう。
そもそも$argvでできるなら質問しないだろ。

質問は「引数に含まれるスペースや記号を解釈しないでそのまま渡す方法」だ。
0355名無しさん@お腹いっぱい。2009/03/07(土) 21:19:41
>>352
それは cshでは不可能というのが結論。だからcsh撲滅すべし。

cshの $argvは、/bin/shの $* 相当なので、内容が再解釈されるから不可。
cshの "$argv"は、/bin/shの "$*" 相当なので、引数が連結されてしまうから不可。

/bin/shの "$@" に相当するものは cshには存在しない。


>>353
おまえ、あほだろ。何が「man を見るんだ」だ。
0356名無しさん@お腹いっぱい。2009/03/07(土) 21:47:04
まんまんを見る
0357ウサチャソ ◆/0IEZmXnQ6 2009/03/08(日) 02:35:04
>>356
man man
か?

それにしても最近おまんまn見てねーな…
0358man man2009/03/12(木) 15:20:51
しこっていいのよ
0359名無しさん@お腹いっぱい。2009/04/08(水) 23:19:38
以下のソースで動きが異なる理由が知りたい。。。

#!/usr/csh -f
set cmd = ( 'echo "test test2"' "|" "wc -l")
set cmd2 = ( "echo" "|" 'echo "test test2"' "|" "wc -l")

echo "cmd=$cmd"
eval $cmd

echo "###########################"
echo "cmd2=$cmd2"
eval $cmd2
0360名無しさん@お腹いっぱい。2009/04/08(水) 23:45:17
359だが、別の環境でやったら同じ動きをしたよ。。。
バージョンとかの違いだったみたいです。お騒がせしました。

誰も見てねーとは思いますが
0361名無しさん@お腹いっぱい。2010/04/26(月) 18:05:48
デスマご苦労さまでちゅ!

仕事がなくてヒマしているPGさんも
ご苦労さまでちゅ!

壊れて辞めてしまったPGさんも
これまた本当にご苦労さまでちゅた!

さて、フロは入ったほうがさっぱりいたしますが、
スレタイどおりと思いませんか?
0362名無しさん@お腹いっぱい。2011/01/29(土) 19:47:30
撲滅する必要は無い
0363名無しさん@お腹いっぱい。2011/01/29(土) 20:06:45
>>362
ある。
0364名無しさん@お腹いっぱい。2011/01/29(土) 20:12:17
応募資格:
・UNIXシェル(コマンドライン)上にて一通りの作業ができる方
(ただし、ログインシェルがcsh系(tcshを含む)の方は応募を御遠慮下さい)
0365名無しさん@お腹いっぱい。2011/02/27(日) 22:33:14.72
バカなcshのこれ、解決できないの?

% alias foo 'echo Hello' ; foo
foo: Command not found.
% foo
Hello

0366名無しさん@お腹いっぱい。2011/02/27(日) 23:28:54.15
そんな訳ないだろと思って試してみたら本当だったでござる
0367名無しさん@お腹いっぱい。2011/02/27(日) 23:30:17.05
と思ったらbashでもzshでも同じじゃねーか!ふざけんな
0368名無しさん@お腹いっぱい。2011/02/28(月) 06:31:21.81
$ foo(){ echo Hello;}; foo
Hello
$ foo
Hello
0369名無しさん@お腹いっぱい。2011/02/28(月) 13:45:26.63
1行ごとに解釈して alias 展開したのち、全体を実行するという man 通りの動作です。
% alias foo 'echo Hello' ; foo
foo: Command not found.
% unalias foo ; foo
Hello
0370名無しさん@お腹いっぱい。2011/02/28(月) 15:24:31.11
>>365
それできないと何か困るの?
0371名無しさん@お腹いっぱい。2011/02/28(月) 16:21:12.40
>>369
へぇー
0372名無しさん@お腹いっぱい。2011/04/27(水) 12:30:41.83
今のLinuxの主要ディストリはみんな、
デフォではcsh/tcshは入ってないんだよ。
撲滅完了?
0373名無しさん@お腹いっぱい。2011/04/27(水) 14:56:56.62
ビル女医大先生は、どうして新しいシェル文法を考えるのをやめて、
Bourne shellにジョブコンとヒストリを付けてくれなかったのか…
>>372
Mac OS Xもtcshをディフォルトログインシェルにするの辞めたしな。
HP-UXは今でもそうなんじゃない? *BSDはもう最近全然知らないが。
0374名無しさん@お腹いっぱい。2011/05/04(水) 23:59:38.43
>>373
C言語の文法を、スクリプト書き、もっと言えばインタラクションの場面でも使いたかったからでは。
C shellって名前にしたぐらいなんだから。
0375名無しさん@お腹いっぱい。2011/05/06(金) 11:36:51.11
She sells C shells by the seashore.
0376名無しさん@お腹いっぱい。2011/05/30(月) 19:51:13.42
撲滅だよもん
0377名無しさん@お腹いっぱい。2011/08/10(水) 11:51:49.83
$の部分を食べたらおいしかった
0378名無しさん@お腹いっぱい。2011/08/10(水) 21:59:40.74
bshの文法が受付けないわ
tcshで桶
0379名無しさん@お腹いっぱい。2011/08/11(木) 02:30:15.45
文法はどうでもいい部分。
cshは意味に問題がある部分が多い。
0380名無しさん@お腹いっぱい。2011/08/11(木) 11:17:20.47
基本文献
ttp://www.faqs.org/faqs/unix-faq/shell/csh-whynot/
0381名無しさん@お腹いっぱい。2012/02/26(日) 15:19:16.96
いい加減Cシェル書くのは止めようよ。マジCシェルみたいなカス使ってるの
ってFREE?BSDユーザだけだよ。ていうかROOTのデフォルトシェル
がTCシェルなのは一体何時になったら変わるの?

Cシェル使うくらいならSHシェル使ってください。それか、あとからバッシュ
入れるか。
0382名無しさん@お腹いっぱい。2012/02/27(月) 08:22:51.95
わざわざ意識してまで間違った言葉遣い&用語選びをしなくてもいいんですよ。
0383名無しさん@お腹いっぱい。2012/07/12(木) 19:20:13.06
今月はじめ、職場に新しいPC(Core i7の結構ハイエンド構成)が入りました。
多分私が運用保守をまかされそうな雰囲気です。業務的にとある構造分析や
シミュレーションなど行う必要があり、制御コマンドとしてシェルスクリプトを
使用するのは聞いていたのですが、そのファイルを開いて1行目に書かれていたのは
#!/bin/tcshという文字列でした。

「うへぇ〜、よりによってtcshかよ」

ファイル記述子のリダイレクト不可、クオートのネスティング等に無理あり、
今の奴でさえシェル関数は使えないし、パイプラインの終了ステータスもおかしいし、
今時の担当者が扱ってセキュリティは大丈夫なのか不安はつきませんし、
スクリプトとしてのcshは嫌われるのでネット上の情報も少なく調べるのも大変です。
おそらく導入に際して、大学など教育機関で最初にcshに触れて刷りこまれた人間が
強気の知ったかぶりをして発言権を得て「俺流」をつらぬき紛れ込ませたのでしょう。

昔、当時、シェルで唯一aliasやhistoryやジョブコントロールの機能が使えた
cshは大学など教育機関に浸透していて、日本のシェル界に多くのバカを輩出しました。

これから私は、おそらくそういうバカが、$*でスペース入りファイル名が扱えないとか
$<でファイルから読めないのかとか、if文の条件式のコマンドでリダイレクト
できないのかなどと、シェル通気取りの偏ったどうでもいい我侭を言い出し
(だからcshスクリプト書くんじゃねーよ)それと戦わなければならないのでしょう。
そして時代によって決着している、過去25年のシェル界隈のくだらないそれらの議論が
再現され、それに巻き込まれるのでしょう。もう今からうんざりです。

だからお願いです。教育現場ではbashでもzshでもkshでもashでも
Bourne shでもなんでもいいですがBシェル系のシェルにしてください。

教育機関で懐古趣味のバカを量産されると現場が非常に苦労するのです。
0384名無しさん@お腹いっぱい。2012/07/12(木) 19:50:14.10
そのコピペ面白くないからもういいよ。
0385名無しさん@お腹いっぱい。2012/07/12(木) 21:01:57.19
コピペだったのか。マジレスしそうになったよw
0386名無しさん@お腹いっぱい。2012/07/13(金) 06:45:17.86
>>383
「輩出する」は自動詞

×バカを輩出しました。
○バカが輩出しました。
0387名無しさん@お腹いっぱい。2012/07/13(金) 08:07:12.14
ただの誤変換だろ。

○バカを排出しました。
0388名無しさん@お腹いっぱい。2012/07/13(金) 08:49:13.87
>>387
だからそれが間違いだって。

○バカが輩出しました。
0389名無しさん@お腹いっぱい。2012/07/13(金) 09:16:52.20
一人じゃ輩出できないけどな。次々出てこないと。

0390名無しさん@お腹いっぱい。2012/07/13(金) 10:48:15.32
>>388
ぷぷぷっ。教養の無さを自白すんなよ。どっかのブログでつけた浅知恵か。
「排出する」は他動詞だから「バカを排出しました」は正しい用法。

>>389
元記事は「多くのバカ」となってるよ。切り出し方も無教養だったって事だね。
0391名無しさん@お腹いっぱい。2012/07/13(金) 10:53:49.08
>>390
だから、排出じゃなくて輩出だよ。>>383 もう1回良く読め。
勝手に排出と読み間違えて何言ってんだか。
0392名無しさん@お腹いっぱい。2012/07/13(金) 11:05:11.50
そんなひっぱるほどの話じゃない。
0393名無しさん@お腹いっぱい。2012/07/13(金) 15:31:20.10
>>381
排出: (内部の不用な物を)外へ出すこと。
(不要な)バカが(大学など教育機関)から外に出てきたんだから、排出であってるじゃん。
0394名無しさん@お腹いっぱい。2012/07/13(金) 16:19:11.30
>>393
原文は >>383
383では輩出と言ってる。原文がすべて。以上終了。

(排出だと前後の文脈と矛盾して意味が通じない)
0395名無しさん@お腹いっぱい。2012/07/13(金) 16:34:20.85
単なる誤変換。排出でも前後の文脈と全然矛盾しない。

ゴミやクズやバカに対しては「〜〜を排出する」は正しい用法であること
に気づかず、どこかのブログで仕入れた半端な知識を振り回したお前の負け。
0396名無しさん@お腹いっぱい。2012/07/13(金) 16:48:22.39
「〜を排出する」では「〜」の部分に「人」は来ない。「物」が来る。
0397名無しさん@お腹いっぱい。2012/07/13(金) 16:54:24.26
>>395
「cshで教育を受けた人間が世の中に輩出した」という文脈だから、
「排出」だと矛盾する。「排出」だとcshで教育を受けたことが不要なことだったという
意味になってしまうから。

もちろん、原文ではそういう大学教育をやめろともう一度否定してるんだけど、
その否定元が「排出」だと意味が逆になってしまう。
よって、原文は「輩出」の意味で書いていると考えられる。
0398名無しさん@お腹いっぱい。2012/07/13(金) 17:44:18.52
>>395
> 「排出」だとcshで教育を受けたことが不要なことだったという意味になってしまうから。

違う。不要なのはcshの教育を受けたことではなく、csh教育を受けた結果としてできた「バカ」。
なんら矛盾しない。
0399名無しさん@お腹いっぱい。2012/07/13(金) 18:02:43.74
>>398
「排出」だと仮定した場合の主語は「大学等」だから
398が言うことは矛盾している。大学自身は「排出」だと考えていないのだから。

で、>>396 には反論できないのかな?w
0400名無しさん@お腹いっぱい。2012/07/13(金) 18:11:03.07
このように、>>838からは排出の誤変換なのか、自動詞の誤用なのかは判断できないのだが、

>>386はどこかのブログで仕入れた半端な知識で自信たっぷりに
> ×バカを輩出しました。
> ○バカが輩出しました。
と突っ込んでしまった。
ところが、「輩出する」とは「たくさん出てくる」という事なので、主語は複数で
なければならない。○をつけた文が誤用という愉快な突込みをとなってしまった。

×多くのバカを輩出しました。
○多くのバカが輩出しました。
とすべきであろう。付け焼刃でアゲ足を取ると恥をかくという実例である。
0401名無しさん@お腹いっぱい。2012/07/13(金) 18:15:36.30
>>399
反論して欲しいなら反論に値するレスを書け。
ゴミカス書いて反論できないのかとは片腹痛いわ。

バカはゴミに等しい。すなわち「物」以下なので正しい用法。
0402名無しさん@お腹いっぱい。2012/07/13(金) 18:16:16.69
>>400
元の文の >>383 に「多くのバカ」ってちゃんと書いてあるよ。
何ボケてんだかw
0403名無しさん@お腹いっぱい。2012/07/13(金) 18:17:16.12
>>396 への反論まだぁ? ないなら >>396 の勝ちだね。
0404名無しさん@お腹いっぱい。2012/07/13(金) 18:19:27.91
かつてスクリプトスレで/dev/tcpで無知晒したクンが騒いでるのか。
文体そっくりでわかりやすいわ。
■ このスレッドは過去ログ倉庫に格納されています