シェルスクリプト相談 ..
116:デフォルトの名無しさん
05/08/08 00:23:49
>>108が図星で勢いで誤魔化しただけだろ
117:107≠112
05/08/08 02:55:47
>>116
1行野郎をシェルスクリプトと言いたくなかっただけなんですが。
そういう意味では、>113とは思いっきり反りが合わないらしい。
#>112はなんかのコピペみたいで受けたけど。
>>113
えーと、>112じゃないけどwhatisとか?
118:デフォルトの名無しさん
05/08/08 03:16:19
効率のいいスクリプト引っさげて再登場するのかと思ったら…
119:107≠112
05/08/08 05:01:01
だって>103なんだもの。お目汚しにawkの例。
--
{
line[NR] = $0;
}
END {
for (ic = NR; ic > 0; --ic) {
print line[ic];
}
}
--
行数多くて泣いても知らない。
120:デフォルトの名無しさん
05/08/08 07:38:13
ひっくり返すだけなら
reverse() {
local line
if read line; then
reverse
echo $line
fi
}
reverse
121:デフォルトの名無しさん
05/08/10 21:06:35
インラインにすりゃいいってもんじゃなだろ的なものをわざわざ淫乱で書く
それがシェル|スクリプト|クオリティ
122:デフォルトの名無しさん
05/08/11 09:50:15
曰く「○○があるだろ」
曰く「○○で十分」
曰く「車輪の再発明はするな」
大人は誰もわかっちゃくれない
123:デフォルトの名無しさん
05/08/13 03:03:47
これを仕事にしているから。
仕事だから「実現する事」がなによりも優先されるのだよ。
124:デフォルトの名無しさん
05/08/14 09:17:58
ソウルってチョンだろ
125:デフォルトの名無しさん
05/08/14 09:52:03
>>123 子供が遊んでる横でそれを言うのはナンセンス。
126:デフォルトの名無しさん
05/08/17 13:06:26
sshやtelnetでリモート端末にログインしたあと、さらにその端末でコマンドなどを実行するにはどのようにしたらよいのでしょうか?
127:デフォルトの名無しさん
05/08/17 13:23:07
>>126
ログインシェルに実行したいコマンドを書いておくとか、
ログイン時に実行したいコマンドも指示するとか。
128:デフォルトの名無しさん
05/08/17 13:33:06
man sshすると書いてある。
ssh [-l login_name] hostname | user@hostname [command]
% ssh nanasi@server "ping -c 5 www.example.com" > logfile
とやると手元のlogfileにpingの結果が残る。
129:デフォルトの名無しさん
05/08/17 13:52:42
>>128
灯台もと暮らしでした
130:デフォルトの名無しさん
05/08/17 14:19:11
>>129
>灯台もと暮らしでした
あんたは灯台守かい。
131:デフォルトの名無しさん
05/09/06 01:37:49
C言語のライブラリをシェルスクリプトで使う(呼び出す)方法知ってますか?
ライブラリの中にchar *moji( char *, int, char ) が有った場合の
呼び出し方がわかりません。
(昔作った事があったのですが、ど忘れ…)
詳しい方、教えて下さい。お願いします。
132:デフォルトの名無しさん
05/09/06 01:43:52
>>131
無理なので諦めましょう
133:デフォルトの名無しさん
05/09/06 01:48:08
>>132
無理じゃないんだよ。
昔、新人の時に教わって作った事があるけどシェルスクリプト久しぶりで…
ネットで検索しても引っかからないから、詳しい人に教えて貰いたいです。
134:デフォルトの名無しさん
05/09/06 02:51:38
新人の頃の先輩に聞けよ
135:デフォルトの名無しさん
05/09/06 05:59:40
「printfとかmkdirとか、ライブラリと同名のプロセスを呼んでいた」に一票。
136:デフォルトの名無しさん
05/09/06 10:48:06
ニ票
137:デフォルトの名無しさん
05/09/06 13:04:09
三票
138:デフォルトの名無しさん
05/09/06 13:23:49
もしかしてrundll32.exeのことかね。
C言語のライブラリではたぶん使えないが。
139:デフォルトの名無しさん
05/09/06 19:39:47
>>138
シェルスクリプトと言ってる時点でUN*Xでしょ?
スレ的にも。
140:デフォルトの名無しさん
05/09/06 21:31:34
誰もUN*Xなんて断ってないが。
もし132の言う物が別にあったとしても原理は同じ様なものだろ。
141:デフォルトの名無しさん
05/09/06 22:27:20
ウホっ良い強弁
142:デフォルトの名無しさん
05/09/07 10:23:50
>>140
> もし132の言う物が
132が何を言ったって?
> From: [132] デフォルトの名無しさん <sage>
> Date: 2005/09/06(火) 01:43:52
>
> >>131
> 無理なので諦めましょう
143:デフォルトの名無しさん
05/09/07 23:36:32
>>131の者です。
解決しました。違う掲示板で回答が有りました。
共通関数 . にするよに、やり方は簡単でした。(方法は.ではないよ)
どももお騒がせしました。
144:デフォルトの名無しさん
05/09/07 23:39:03
>>143
僕らの手の届かない所に逝ってしまったみたいですね.
さようなら...
145:デフォルトの名無しさん
05/09/19 01:54:44
うわぁ、イタい質問w
146:デフォルトの名無しさん
05/10/04 13:24:56
クストン
肝心なことが抜けていた
atコマンドでは
at -f <filename> "13:00"
という具合に指定はできても、
at -f <filename> <指定ファイル> "13:00"
みたいなことが出来ないみたいなんだ。
つまりayasii_shという実行ファイルには必ず参照するファイルを指定しないといけないわけ
"ayasii_sh ayasii_config"
みたいな。
でもそれを "ayasii_sh ayasii_config" "13:00"という風には入れられないんだ
at -f
147:デフォルトの名無しさん
05/10/04 14:17:30
>>146 肝心なことが抜けていた
???それが肝心なことだというの???
一体 >>146 は何についてのレスなのさ?
何かの誤爆?
148:デフォルトの名無しさん
05/10/04 22:25:28
シングルユーザーモードで立ち上げざるを得ないは、
ボーンシェルじゃないと動かないから、
少なくともシステム管理やる人間は、
ボーンシェル必須って教えられてきたけどね。
149:デフォルトの名無しさん
05/10/05 01:01:04
んなこたーない。
150:デフォルトの名無しさん
05/10/05 01:26:36
仕事でシェルスクリプト書くことになったんだが・・
オススメの参考書を教えてくれぇ。・゚・(ノД`)・゚・。
・・・ちなみにBシェルね(゚∀゚)
151:デフォルトの名無しさん
05/10/05 01:55:04
>>150
man bash
いや、マジで。
152:デフォルトの名無しさん
05/10/05 02:14:14
>>151
いや、確かにそうなんだが・・
なんというか、その。
手元にある安心感とか・・
ね?
考えるより印刷したほうが早いかな (;´Д`)
153:デフォルトの名無しさん
05/10/05 03:30:18
>>152
URLリンク(www.linux.or.jp)
これ印刷したら結構なページ数になると思うよ。
趣味で書くならともかく、仕事なんだから仕様をきちんと
理解しないといけないわけでしょ。
なら、まずは man を読む事から始めないとね。
154:デフォルトの名無しさん
05/10/05 05:05:19
bashのドキュメントだけどさ、GNU発祥なんだからmanより先に
infoなのでは。少なくとも「公式」の情報はinfoの方でしょ。
どちらも精読したわけじゃないから、違いは知らんとです。(弱っ)
155:デフォルトの名無しさん
05/10/05 08:07:06
Bシェルつってんだから、man sh だろ
156:デフォルトの名無しさん
05/10/05 13:27:31
>>150
「UNIXプログラミング環境」
URLリンク(www.amazon.co.jp)
B-shellの書き方だったらこれがお薦め。
ほかの部分は古くなってるが読んでおいたほうがいい。
157:デフォルトの名無しさん
05/10/05 13:40:11
>>156
それクリックしてマーケットプレースのを注文しちゃった
158:デフォルトの名無しさん
05/10/14 01:35:02
EXPECTでテキストファイルを一行ずつ読む方法を教えてください
159:デフォルトの名無しさん
05/10/14 09:45:17
なぜ?
160:デフォルトの名無しさん
05/10/15 20:35:11
下記のプログラムでX.X.X.Xの所(1.1.1.1,2.2.2.2,3.3.3.3と続く)を
ファイルから読み出して実行する方法を教えてください。
#!/usr/bin/expect
telnet X.X.X.X
expect -ex "login:"
send "UUUUU\r"
expect "Password:"
send "UUUUU\r"
expect "linux$"
send "ifconfig"
expect "linux$"
send "exit\r"
expect eof
161:デフォルトの名無しさん
05/10/15 20:49:18
>>160
expectって俺は使ったこと無いけど
あれはたしかtclの変種でしょ
普通にtclのコマンド使えばいいんじゃないの。
openとかgetsとか
162:デフォルトの名無しさん
05/10/15 21:17:44
>>160
> #!/usr/bin/expect
この時点でシェルスクリプトではないのだが。
163:デフォルトの名無しさん
05/10/15 21:36:41
>>162
書き直します
#!/usr/bin/sh
expect -c
telnet X.X.X.X
expect -ex "login:"
send "UUUUU\r"
expect "Password:"
send "UUUUU\r"
expect "linux$"
send "ifconfig"
expect "linux$"
send "exit\r"
expect eof
よろしいでしょうか?
アドバイスください。
164:デフォルトの名無しさん
05/10/15 21:47:47
で、openだのgetsだのは使ってみたの?
tclはほとんど使わないが、たぶん
set filename ファイルの名前
set fd [ open $filename r ]
while { [ gets $fd line] != -1 } {
lineを処理
}
close $fd
とかそんな感じだと思われるが。
ま、動的に必要なパラメタがIPだけならargv渡しでもいいだろうし
シェルでラップするんならシェル変数とクォート使って
埋め込んでもいいよな。
好きにしる。
165:デフォルトの名無しさん
05/10/15 21:50:12
>>164
ありがとうございます^^
今から試してみます。
本当にありがとうございました。
166:デフォルトの名無しさん
05/11/01 23:36:11
お世話になります。
LynxOSでシリアル経由にて装置を制御する
シェルスクリプトを考えています。
STTYコマンドで調歩同期の設定しようと思いますが
なかなかうまくいきません。
どなたかご存知の方ご教諭くださいますようお願いします。
167:デフォルトの名無しさん
05/11/11 10:47:24
すみません。息詰ってしまいました。
質問させてください。
B-Shellで与えられたホスト名、ユーザー名、パスでFTPログインできるか
確認だけ行いたいのですがやり方がわかりません。
ログインエラーも判断させる感じで作りたいのです。
シェル初心者で恐縮なのですが
どなたかご存知の方いらっしゃいましたらご教授お願いします。
168:デフォルトの名無しさん
05/11/11 11:52:07
>>167
君がやり方を分からなかろうと知ったことでは無いし、"初心者"が免罪符になると思っているなら書き込むな
169:デフォルトの名無しさん
05/11/11 14:39:13
>>166
ここじゃなくて、使っているOSの端末ドライバについて
質問するようなスレに行ってください
--
それは端末ドライバのせいなんだよ
170:デフォルトの名無しさん
05/11/11 17:14:36
>>167
それは質問ではなく「作ってよこせ」というお願いですよ。
171:デフォルトの名無しさん
05/11/19 15:19:56
最近bashを勉強中ですが、ちょっと質問させてください
シェルスクリプトでコマンドを実行して
失敗したら強制終了させたいのですがどうしたらいいでしょうか?
COMMAND=mkdir test
if ! $COMMAND
then
echo "失敗"
exit 1
fi
echo "成功"
これじゃ、だめですよね?
172:デフォルトの名無しさん
05/11/19 16:12:54
ヒント:直前のコマンドの終了ステータスは変数 $? に格納される。
173:デフォルトの名無しさん
05/11/19 17:00:01
ありがとう>>172さん
親切な方がいて助かりました
ついでにもう1つ質問させてください
シェルスクリプトでヒアドキュメントを使ってファイルに書き込むにはどうしたらいいでしょうか?
174:デフォルトの名無しさん
05/11/19 17:08:01
>>173
command > file <<EOF
...
...
...
EOF
175:デフォルトの名無しさん
05/11/19 17:30:08
>>174ありがとうございますー!
素敵です・・・
176:デフォルトの名無しさん
05/11/20 10:21:45
いや、manページを読めば判ることで素敵って言われても。
177:デフォルトの名無しさん
05/11/20 12:24:42
>>176すいません
何のmanページ見たらいいのかわかりませんでした・・・
そこでまた質問させてください
useraddを実行したとき自動でパスワードを入力させるにはどうしたらいいでしょうか?
178:デフォルトの名無しさん
05/11/20 12:53:51
つ[man bash]
179:デフォルトの名無しさん
05/11/21 19:49:25
仏の顔もってやつだなw
180:177
05/11/21 23:41:48
ちょっと質問間違えました
シェルスクリプトでpasswd hogeを実行した場合
パスワードを求められますが、これを全部シェルスクリプトで行いたい。
これって無理でしょうか?
181:デフォルトの名無しさん
05/11/22 00:58:02
このスレで、passwordとかパスワードとか検索して、その前後100回読んで、
あと、UNIX板のシェルスクリプトスレでも同じことして、
それでもわからなければあきらめろ
182:177
05/11/22 01:48:17
>>181
ありがとう
がんばってみます
183:デフォルトの名無しさん
05/11/22 02:18:59
なんかUNIX板で似たような質問を見てきた気がするけど、気のせいかな?
184:デフォルトの名無しさん
05/11/22 04:40:34
>>183
がんばる=他のスレでも質問する だったみたいだな。w
185:デフォルトの名無しさん
05/11/26 11:08:04
shellスクリプトの開発環境ってありますか?
べた打ち、ベタ読みは不便で・・・
命令文や変数に色がつく程度でも良いのですが・・・
186:デフォルトの名無しさん
05/11/26 11:33:47
>>185
お使いのエディタに、キーワードを登録してください。
登録済みキーワードに色がつかないエディタをお使いなら、適宜乗り換えてください。
187:デフォルトの名無しさん
05/11/26 17:29:36
試しにxyzzy bash-mode でぐぐったら引っかかった。
いいかも、これ。
188:デフォルトの名無しさん
05/11/26 20:10:23
何で色が付かないと不便なんだろう
漏れは逆に色が付いてると禿しく見にくい
189:デフォルトの名無しさん
05/11/26 21:31:21
色使いが悪いだけじゃないのか
190:デフォルトの名無しさん
05/11/26 22:30:11
エディタ操作って「慣れ」とか「親しんだ環境」が最重要事項だから
191:デフォルトの名無しさん
05/11/26 23:20:32
>>186
えーとえーと、
viエディタでガリガリ書いて、コンパイルして
ってのに疲れたんです。
teratarm君はお目目に優しくないし・・・
エディタが擬似的に実行したりしてくれないかなあ・・・
>>187
情報ありがとうございます。
でもエディタそのものの使用で挫折しました。
192:デフォルトの名無しさん
05/11/26 23:23:07
>>191
コンパイル?
193:デフォルトの名無しさん
05/11/27 00:05:10
>>192
まちげーた・・・
sh ほにゃらら で、毎回実行して
ってのが正解です。
別にshって打つのは辛くないです。パス通す方が雌鳥なだけです。
まあその程度の人間だってことです。俺は。
194:デフォルトの名無しさん
05/11/27 00:14:21
パス通す?
195:デフォルトの名無しさん
05/11/27 00:44:41
実行権限与えるのがめんどくさい、じゃねーのか?
パスが通ってなかったら、sh 打ったって実行できん。
chmod 777 hoge するのが面倒なら、それこそシェルスクリプト組んどけ。
196:デフォルトの名無しさん
05/11/27 00:50:44
#!/hoge
すら書いてなさそうな香具師だな
197:デフォルトの名無しさん
05/11/27 01:28:22
まあ何だか知らないが、今までvi使ってたんならvimはどうよ。あれ
色つくだろ。
198:デフォルトの名無しさん
05/11/27 01:32:53
なるほどー。
でも何でか、sh でカレントから新しくシェルを起動できるんだけどな?
ファイル名単体で打ったらダメだけど・・・環境変数に書いた覚えないし。
と思ったら、スクリプトの一行目が #!/bin/sh だったことを思い出した。
なるほど。そうか、パスは通してるのか。ふむふむ。
「実行権限を与えてパスを通す」。なるほどなるほど。
いやー、どれだけ自分の知識が曖昧か再認識しましたよ。
199:デフォルトの名無しさん
05/11/27 02:00:46
>>197
どうやらvimにシェルは無いっぽいです。
というわけで、terapadの色の設定を
ガリガリ書き換えることにしました。
皆様お世話になりました。
また何かあったらよろしくお願いします。
200:デフォルトの名無しさん
05/11/27 02:14:08
200
201:デフォルトの名無しさん
05/11/27 10:30:51
>>195
>パスが通ってなかったら、sh 打ったって実行できん。
へ?
202:デフォルトの名無しさん
05/11/28 00:05:03
俺も>>195は意味不明だが、スルーした方がよい気がする
203:デフォルトの名無しさん
05/12/04 19:53:23
ファイル名を一括置換するシェルスクリプト
#! /bin/sh
for nm in temp*;
do
mv $nm HOGE${nm#tr};
done
temp → HOGEにするのはわかるのですが、
hhh_a_xxxxxxxxx.txt → hhhaxxxxxxxxx.txt のように _ を削除(一括置換)するスクリプトを教えてください。
※xxxxxxxxxは可変
204:デフォルトの名無しさん
05/12/04 21:14:19
>>203
方法は色々あるけど tr -d あたりがお勧め。
205:デフォルトの名無しさん
05/12/04 22:40:36
>>204
tr のコマンドの意味はわかったんだけど、どうやってコマンド組み合わせればいいの?
tr は標準出力のものを対象にしてると書いてあったけど、コマンドの組み合わせ方が、わかんないです。
206:デフォルトの名無しさん
05/12/04 23:17:46
>>204
#!/bin/sh
for f in hoge*
do
mv $f `echo $f | tr -d 削除文字`
done
できたよ。ありがとう。
207:デフォルトの名無しさん
05/12/09 19:09:12
質問なんですけど、
NTのコマンドプロンプトで
テキストファイルが二つあって
中身を片方にアペンドしたいのですが
どう記述したらいいでしょうか?
マニュアルも何もなくて一人で困ってます
208:デフォルトの名無しさん
05/12/09 19:10:20
type a.txt >> b.txt
209:デフォルトの名無しさん
05/12/09 20:00:54
ありがとうございました
ホント助かります
210:デフォルトの名無しさん
05/12/10 02:05:23
helpコマンドがある
211:デフォルトの名無しさん
05/12/12 13:58:44
数100人のユーザがいるLinuxで
全ユーザのパスワードを一括で設定できる
シェルスクリプトを教えろよ。
212:デフォルトの名無しさん
05/12/12 14:04:46
sed 's/:[^:]:/:hoge:/'
213:デフォルトの名無しさん
05/12/12 22:19:23
evalって問答無用に変数を展開しちゃうんですよね?
214:デフォルトの名無しさん
05/12/12 22:39:28
どういう局面のことを言ってるのかわからんけど、
変数を展開するのはevalじゃないと思われ。
多分だけど、eval以前に変数が展開されてるんちゃうか。再確認してみ。
evalは展開された結果を評価してるだけのはず。
215:デフォルトの名無しさん
05/12/19 15:43:31
user> ./a.out < a000001.txt > result.txt
で結果をtxt化しているのですが、a000001.txtをa100000.txtまで処理させて
一個一個の結果を足して一つのtotal_result.txtしていきたいのです。
どのようにしたら良いのでしょうか?
具体的にはa000001.txtは以下のように出力されたとします。
1 0 3
2 4 3
3 7 7
4 8 3
5 8 1
6 2 8
7 0 4
8 2 3
a000002.txtも以下のように出力されたとします。
1 0 3
2 2 6
3 4 7
4 6 3
5 2 2
6 6 9
7 1 1
8 1 2
216:デフォルトの名無しさん
05/12/19 15:44:16
これが10万まで続くのですが、結果の2列目と3列目を足していきたのです。
1 0 6
2 6 9
3 11 14
4 14 6
5 10 3
6 8 17
7 1 5
8 3 5
(これは先ほどの二つの結果の合計です)
217:デフォルトの名無しさん
05/12/19 16:06:02
スレ違い回答だが
awk '{x[$1]+=$2;y[$1]+=$3;} END {for(i=1;i<=3;i++)printf("%d %d %d\n",i,x[i],y[i]);}' result*.txt
218:215
05/12/19 18:20:06
>>217さん
レスありがとうございます。
UNIX初心者な者で解答をみてもよく分からないのが現状です。
gccでコンパイルした後、どうしていけば10万のファイルの結果を合計していけるのでしょうか?
スレ違いとは思いますが、ご指導いただけたらと思います
219:デフォルトの名無しさん
05/12/19 19:12:10
んなのプログラムの方変更した方が早いよ
220:デフォルトの名無しさん
05/12/19 19:14:39
んなのが調べられないぐらいのレベルなら
聞いてボーッと回答待つより1万行のバッチ書け。
221:デフォルトの名無しさん
05/12/20 20:43:04
変数置換えで入れ子したい!
${${NAME##*/}%.*}
こゆー事したい場合どんなのがスマート?
わかりにくいね、上のはbasename ${NAME%.*} なんだけど
222:デフォルトの名無しさん
05/12/21 02:55:27
>>221
$ x=/a/b/c.d
$ y=${x#${x%?}}
$ echo $y
d
こういう事ならできるけど、前後を一変に取り除く方法は知らない。
$ x=/a/b/c.d
$ y=${x%.*}
$ y=${y##*/}
$ echo $y
c
これじゃダメなの?
223:デフォルトの名無しさん
05/12/21 09:50:00
>>215
joinを知れば何かが見えてくる。
224:デフォルトの名無しさん
06/01/07 16:12:11
質問です。
例えばdateで現時刻をvar.txtに出力するとします。
date > var.txt
txtファイルの中身は時間が書いてあると思うのですが、
もう一度↑のコマンドを実行した場合に、中身も上書きされてしまいますよね?
それで同じファイルに↑のコマンドの実行結果を書き足していくことは不可能ですよね。
可能でしたらその方法をおしえてくだしあー
225:デフォルトの名無しさん
06/01/07 16:19:45
>>224
date >> var.txt
226:デフォルトの名無しさん
06/01/07 16:20:23
>>225
どうも
227:デフォルトの名無しさん
06/01/09 18:04:46
ある年月が入力された時に、その前後の年月を出力するには
どのようにすればよいでしょうか?
例:
200512と入力されると、200511 200601が出力される
228:デフォルトの名無しさん
06/01/09 18:07:50
>>227
つ date コマンド
229:デフォルトの名無しさん
06/01/09 18:21:10
dateコマンドでどのようにして前の月や次の月を
表示させるのですか?
230:デフォルトの名無しさん
06/01/09 18:21:27
>>227
cut,sed,date,exprくらいでできそう
231:デフォルトの名無しさん
06/01/09 20:53:50
>229
すくなくともgnuのdateはできるよ
URLリンク(www.linux.or.jp)
232:227
06/01/09 22:31:15
>231
おおこんなことができるのですね。
勉強になりました。
これでなんとかできそうです、ありがとうございました。
233:デフォルトの名無しさん
06/01/09 22:38:31
どんな気持ちでこんなものを通したのか・・・
date --date '2 days ago'
days agoって・・・
234:227
06/01/09 23:50:58
行けそうと思ったのですが、現在時からの日にち計算しかできませんでした。
うーん。。
特定した日にちから指定するのは無理かもしれません。。
235:デフォルトの名無しさん
06/01/10 00:05:08
試してないので外れだったらスマンが
date --date '20060101 + 1 month'
236:227
06/01/10 00:12:55
>234
いけました汗
ずっと1 monthの部分を外に出して実行してた大馬鹿者でした。
ありがとうございました。
237:デフォルトの名無しさん
06/01/10 05:42:11
bash
って何て読むんですか?
ばっしゅ
ヴぁっしゅ
びーしぇる
ヴぉーんしぇる
ヴぉーんあげいんしぇる
ぷろんぷと・ヴぁっしゅ
ヴぁにっしゅ
皆さん何て読んでますか?
238:デフォルトの名無しさん
06/01/10 06:54:52
bash
239:デフォルトの名無しさん
06/01/10 06:59:25
シーシェルは孤高
240:デフォルトの名無しさん
06/01/10 10:36:42
csh使ってる奴って変態なの?
241:デフォルトの名無しさん
06/01/10 12:13:36
Solarisだと標準がcshだし。
242:デフォルトの名無しさん
06/01/10 17:05:01
tcshが使えるのにcshを使ってたら変態
スクリプト書くのにもcshを使ってたら変態
243:デフォルトの名無しさん
06/01/10 20:09:55
>>241
こらこら、嘘を教えなさんな。
244:デフォルトの名無しさん
06/01/10 20:22:49
Solaris 1 のころならな
245:デフォルトの名無しさん
06/01/10 21:42:11
>>243
Admintoolでshとcsh以外選べたっけ?
246:デフォルトの名無しさん
06/01/10 22:10:04
>>245
admintool 自体が obsolete.
247:デフォルトの名無しさん
06/01/10 22:33:06
そうだったのか。
248:デフォルトの名無しさん
06/01/11 03:43:32
Oracle入れるとcsh押し売りされるよね
249:デフォルトの名無しさん
06/01/11 04:03:14
あれは謎シェルだねw
何で直さないんだろうか。
250:デフォルトの名無しさん
06/01/22 17:16:33
command | tee log | grep hoge
としたときに、commandの終了ステータスを知る方法はありませんか?
command > log
ret=$?
grep hoge log
としとけばretを見ることで可能なんですが、それ以外で。
251:デフォルトの名無しさん
06/01/23 00:42:08
kwsk
252:デフォルトの名無しさん
06/01/23 16:39:20
(command; echo $? >/tmp/hoge) | ....
じゃだめ?
253:デフォルトの名無しさん
06/01/26 12:23:51
>>252
おお、なるほど!
ありがとうございます。
254:デフォルトの名無しさん
06/01/27 22:18:39
シエル先輩をいぢくるスレはここですか?
255:デフォルトの名無しさん
06/01/31 06:00:01
>>250
もう遅いかな?
bash には PIPESTATUS ってシェル変数があるよ。
$ true | false | exit 3 | true
$ echo ${PIPESTATUS[@]}
0 1 3 0
256:デフォルトの名無しさん
06/02/19 05:53:58
ファイルの更新日時を取得する方法を教えてください
257:デフォルトの名無しさん
06/02/19 12:04:08
>>256
stat
でもSunとかHPとかないOSもあるかも。
258:デフォルトの名無しさん
06/02/19 13:39:39
>>256
つ[`ls -l`]
259:デフォルトの名無しさん
06/02/25 01:29:18
超初心者な質問で恐縮なのですが、、
*.jpgと*.JPGのファイルを判断して
*-new.JPGのように名前を変更するには
どのようにしたら良いでしょうか?
お知恵をお貸しください。
よろしくお願いします。
260:デフォルトの名無しさん
06/02/25 01:53:34
ls *.jpg|sed -e 's/\(.*\).jpg/mv \1.jpg \1-new.JPG/' > /tmp/foo
とでもして、
source /tmp/foo
でどう?
261:デフォルトの名無しさん
06/02/25 02:50:31
bash + find ならこんな感じ?
find . -regex '.*\.\(jpg\|JPG\)' |while read i; do mv "$i" "${i%.*}-new.JPG"; done
262:デフォルトの名無しさん
06/03/14 17:51:21
@@@
263:デフォルトの名無しさん
06/03/14 18:29:29
【積年の】旦那にしてる密かな仕返し【恨みじゃー】
スレリンク(ms板)
8 名前:可愛い奥様[] 投稿日:2006/03/07(火) 11:05:23 ID:8dtluKkp
夫の歯ブラシで洗面所の排水溝掃除。
洗面所をビショビショに汚した罰だ。
20 名前:可愛い奥様[age] 投稿日:2006/03/08(水) 00:40:17 ID:pRrk6A21
前に頭きた時あって
1度だけ歯ブラシで肛門カキカキしちゃった
22 名前:可愛い奥様[] 投稿日:2006/03/08(水) 01:27:12 ID:gU5mHc7J
よかった。どこのお宅も同じようなことしてて。
24 名前:可愛い奥様[] 投稿日:2006/03/08(水) 01:36:35 ID:SSSFsTqE
そうそう、ヘンなモノはダンナのお皿へ直行だよね。
41 名前:可愛い奥様[] 投稿日:2006/03/08(水) 11:55:18 ID:sjj+/60Q
見てるだけで気が晴れるな!
皆さん、頑張ってね!
42 名前:可愛い奥様[sage] 投稿日:2006/03/08(水) 20:33:51 ID:Ju2N1s7+
年金分割が楽しみじゃのう
63 名前:可愛い奥様[] 投稿日:2006/03/10(金) 08:55:20 ID:qLfJYpJR
家族で密かにはぶっている。
男性は肉体が汚く、精神が美しい傾向がある。(気に入らない相手に肉体的攻撃を加える⇒精神的攻撃も加える男は猛者)
女は肉体が美しく、精神が汚い傾向がある。(気に入らない相手に精神的攻撃を加える⇒肉体的攻撃も加える女は猛者)
女は隠れて悪事をする。気に入らない女子を便所でボコったり、便器舐めさせたり、男の友人を使ってレイプ、仲間外れにしたり。陰口、嫉妬。
女は対人関係において、この汚い性格を隠そうとするため、外面が非常によくなる。(猫かぶり)
男性諸君は外面に騙されないように気を付けて下さい。
264:デフォルトの名無しさん
06/03/18 01:37:12
²
265:http://www.vector.co.jp/soft/win95/util/se072729.html
06/03/18 20:34:48
TextSS のWindowsXP(Professional)64bit化おながいします
もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
266:デフォルトの名無しさん
06/05/30 23:27:37
質問です。Solaris9で、
rsh 192.168.1.1 su - user -c
267:デフォルトの名無しさん
06/05/30 23:30:23
質問です。Solaris9で、
rsh 192.168.1.1 su - user -c "ls -l"
みたいな事やりたいんですけど、
"ls -l"のオプション部分が有効になりません。
なんとかならないでしょうか?
268:デフォルトの名無しさん
06/05/31 03:19:58
>>267
リモートで実行するコマンドをまとめて括れ
rsh 192.168.1.1 'su - user -c "ls -l"'
269:デフォルトの名無しさん
06/05/31 11:10:05
初歩的ですみませんがファイルのreadで質問があります
以下のreadの仕方では最終行にリターンコードがないと
最終行を読んでくれません。※リターンコードがあればreadしてくれますが・・・。
読む方法はないでしょうか
cat /aaa.txt | while read FILE
do
echo $FILE
done
aaa.txtの内容(この例だとghiを読み込まない)
abc
def
ghi
270:デフォルトの名無しさん
06/05/31 11:43:23
>>269
catじゃなくて、必ず改行するタイプのフィルターに通せばいい。
例えば、awk '{print;}'でもいける。
271:デフォルトの名無しさん
06/06/09 13:30:25
〜日前のファイルを削除するようなスクリプトを作成したいのですが
どのような感じになりますか?
272:デフォルトの名無しさん
06/06/09 13:34:39
>>271
findではいけない理由があるのかね。
取り敢えず、1日(24時間)以上前のファイルを無条件に削除するならこんな感じ。
find . -mtime +1 -exec rm {} \;
273:デフォルトの名無しさん
06/06/09 14:18:24
ctimeじゃないのか
274:デフォルトの名無しさん
06/06/09 23:03:08
>>269
それ、最後の行まで普通にでたんだが、OSによるもんなのか
当方HP
275:デフォルトの名無しさん
06/06/10 08:59:55
何となく本末転倒な対処
perl -wne 'chomp;print $_."\n";' ./aaa.txt | while read FILE
do
echo $FILE
done
276:デフォルトの名無しさん
06/06/12 17:01:03
こんな感じかなあ。(以下は Linux でシェルは bash 3.00.16 使ってます)。
$ perl -e 'print "abc\ndef\nghi"' >a
$ od -c a
0000000 a b c \n d e f \n g h i
0000013
$ cat a | while read s ; do echo "* $s" ; done
* abc
* def
$ ( cat a ; echo '' ) | while read s ; do echo "* $s" ; done
* abc
* def
* ghi
$ awk 1 a | while read s ; do echo "* $s" ; done
* abc
* def
* ghi
$
277:デフォルトの名無しさん
06/06/13 11:26:53
>>272
数日前のファイルは無条件に削除という認識ではあってるのですが
ディレクトリの指定をする場合にはどのようになりますか?
278:デフォルトの名無しさん
06/06/13 12:03:13
>>277
man で調べりゃいいじゃないか。
279:272:'.'はカレントディレクトリとその配下
06/06/13 12:12:52
>>277
取り敢えずディレクトリ指定しているんだけどなぁ。
280:デフォルトの名無しさん
06/06/13 13:19:34
>>279
例えば、フォルダを指定した場合(/tmp)
find /tmp -mtime +1 -exec rm {} \;
上記で/tmpディレクトリ以下の1日以上経過したファイルの削除が行われる
と思って、よろしいのでしょうか?
281:デフォルトの名無しさん
06/06/13 14:05:59
URLリンク(www.google.com)
282:デフォルトの名無しさん
06/06/13 14:19:50
「(::´┏┓`:)なんでそんなに英語を使ってやんのが好きなの?」
283:デフォルトの名無しさん
06/06/13 14:52:23
>>280
何が消されるのか不安なら -exec から後ろをなくしてみればいい。
284:デフォルトの名無しさん
06/06/13 16:54:29
>>280
どうして、マニュアル見て自分で確認せずに聞いて済まそうとするかねえ。
嘘教えられて、重要なファイル消すはめに陥ったらどうするんだよ。
285:デフォルトの名無しさん
06/06/14 16:04:58
初歩的なことを一つ教えてください。
bshで関数定義したものを別のシェルで呼び出すことは出来ますか?
出来るとすると呼び出し方はどのようになりますでしょうか。
286:デフォルトの名無しさん
06/06/14 17:02:26
できます。
関数が入ったファイルfoo.shをbar.shの中で使いたければ、bar.shの中で
. ./foo.sh
などとすれば普通に呼べます。
287:デフォルトの名無しさん
06/06/14 17:06:41
なんだ別のシェルって、そういう意味か。
シ ェ ル ス ク リ プ ト っ て 書 け よ。
288:デフォルトの名無しさん
06/06/14 21:09:56
bshスクリプトを/bin/sh以外のシェル、たとえばcshから呼べますか?だったら
「呼べない」が答えですな。というか、そういう質問なのか?
289:285
06/06/15 00:14:48
bshで書かれたシェルスクリプト内の関数を、
別のbshで書かれたシェルスクリプトで使用することはできますか?
ということで・・・(´・ω・`)
290:デフォルトの名無しさん
06/06/23 14:19:28
while文で一つのリストファイルから呼び出しをかけて、ループさせることは
可能だと思うのですが同じwhile文中で違うリストファイルから呼び出しをかけて
変数として扱うことは可能でしょうか?
291:デフォルトの名無しさん
06/06/24 01:05:24
リストファイルって?
呼び出しって?
かけるって?
292:デフォルトの名無しさん
06/06/24 13:18:35
>>290の要求がどうなのかは知らんけど、俺も心当たりある。
... | while read var; do ...; done
っていうパターンあるじゃんか。そうじゃなくて
while [ ... ]
do
if [ ... ]; then read var1 ただしファイルディスクリプタ1(パイプやファイル)から;
else read var2 ただしファイルディスクリプタ2(別なパイプやファイル)から;
fi
done
のようなことをやりたいと思うことはあったわ。
俺はexecによるディスクリプタコピーととサブシェルプロセスを組み合わせて
やろうとして挫折して、perlに日和った。
293:デフォルトの名無しさん
06/06/25 02:48:36
sudo等でパスワードを求めるプロンプトに
expect以外で自動入力する方法はありますか?
294:271
06/07/03 10:12:10
教えていただいた通りにやってみたのですがディレクトリを削除しようとします。
find /tmp -mtime +1 -exec rm {} \;
ディレクトリ内のファイルのみ削除させる方法はあるのでしょうか?
よろしくお願いします。
295:デフォルトの名無しさん
06/07/03 10:42:10
-type f
296:271
06/07/05 10:00:59
どうやっても上手く動作しません。
どうやってもエラーが出てしまいます。
エラーの出ない方法があれば、御教示願います。
よろしくお願いします。
297:デフォルトの名無しさん
06/07/05 11:18:04
>>296
>>295
298:271
06/07/05 11:31:26
何度もすみません。
295さんの使い方が良くわかっていませんでした。
-type fとすることでファイルを見るというオプションだったのですね。
これで解決することができました。ありがとうございます。
299:デフォルトの名無しさん
06/07/06 12:01:34
DSCN0001.jpg〜DSCN9999.jpgのファイルを全てtravel2006GW0001.jpg〜travel2006GW9999.jpgに変更したいのですが
これを実現するLinuxのシェルスクリプトはどう記述したらいいですか?
それと
travel2006GW0001.jpg
travel2006GW0002.jpg
・
・
・
のようにtxtに打ち出すのもお願いします
300:デフォルトの名無しさん
06/07/06 13:16:58
>>299
マルチ死ね。これだからLinux使いの糞は... (ry
301:デフォルトの名無しさん
06/07/06 13:23:53
もう用済みじゃぼけぇwww
302:デフォルトの名無しさん
06/07/06 14:08:25
>>300
用済みなのは君だけ
303:デフォルトの名無しさん
06/07/06 23:21:48
>>299
#!/bin/sh
echo # | tee foo$$
cd $1
ls DSCN*.jpg | sed -e 's/\(.*\)\([0-9][0-9]*\)\(.*\)/mv \1\2\3 travel2006GW\2\3/' | tee -a foo$$
source foo$$
rm foo$$
304:デフォルトの名無しさん
06/07/07 08:21:44
>>299
$ for i in `seq -w 1 9999` ; do
for> mv DSCN${i}.jpg travel2006GW${i}.jpg
for> echo travel2006GW${i}.jpg
for> done > list
305:デフォルトの名無しさん
06/07/13 14:49:15
>>299
#!/bin/sh
for f in DSCN*.jpg
do
f2=`echo $f | sed 's/DSCN/travel2006GW/'`
echo $f2
mv $f $f2
done
306:デフォルトの名無しさん
06/07/13 16:41:26
>>305
>f2=`echo $f | sed 's/DSCN/travel2006GW/'`
f2=${f/DSCN/travel2006GW}
でいいんじゃねんか
307:デフォルトの名無しさん
06/07/13 18:24:56
>>306
ああ、そうだ。bash はそれで行ける。
308:デフォルトの名無しさん
06/07/14 15:56:42
Bシェルを使用しています。
質問させてください。
ファイル(hoge.dat)の中のデータが下記のように3行あるとします。
1,2,3,4,5
6,7,8,9,10
11,12,13,14,15
この中から「8,9,10」だけを取りたいと思っています。
cut -d "," -f3- $hoge.dat
では
3,4,5
8,9,10
13,14,15
を取って来るのですが、何かよい方法はないでしょうか?
よろしくお願いします。
309:デフォルトの名無しさん
06/07/14 17:59:15
そのあと普通に grep かますんじゃ駄目なの?
cut -d "," -f3- $hoge.dat | grep '8,9,10'
310:デフォルトの名無しさん
06/07/14 18:23:08
だよな
何を根拠に8,9,10なのか何も書かずにいたら
echo 8,9,10
だってりっぱな回答だ
311:デフォルトの名無しさん
06/07/14 19:00:32
これでどうだ!
awk -F, 'NR==2{for(i=3;i<=NF;i++)if(s!="")s=s","$i;else s=$i;print s}' hoge.txt
でも、未確認。
312:デフォルトの名無しさん
06/07/14 20:50:24
これでも喰らえ!
head -2 hoge.txt | tail -1 | sed 's/....//'
313:デフォルトの名無しさん
06/07/14 21:06:11
マジレス
grep -v 1,2 hoge.txt | grep -v 11 | cut -b 5-10
314:デフォルトの名無しさん
06/07/14 21:37:57
head -c 21 hoge.txt | tail -c 7
315:デフォルトの名無しさん
06/07/14 22:33:44
クマー
echo `sed -e 's/$/,/' hage.dat` | cut -d "," -f8,9,10
316:デフォルトの名無しさん
06/07/14 23:29:04
こっちのほうがいいや。
sed -ne '1h;1!H;${x;s/\n/,/g;p}' hoge.dat | cut -d "," -f 8-10
317:デフォルトの名無しさん
06/07/18 09:56:22
ええい。これでどうだ。
perl -ne 'if($.==2){chomp;print join(",",(split/,/)[2..4])."\n";}' hoge.dat
ていうか >>308 はどこ行った?
318:Linax初心者
06/07/24 23:32:10
b-shallとc-shallで入力された日付が有効かどうかの確認のシェルスクリプトを作りたいのですがうるう年の計算や入力された日付が正しいかどうか判断して
正しい日付を入力させるスクリプトなんですが、初心者でわかりませんので
よろしくお願いします。
319:デフォルトの名無しさん
06/07/24 23:42:20
>>318
なんか死ね。
320:デフォルトの名無しさん
06/07/25 01:03:54
Linaxに関しては我々も初心者なもので・・・
321:デフォルトの名無しさん
06/07/25 01:25:39
えーと、スクリプトを作りたいと言うことは理解できました。
で、なにをお願いされたらよいのでしょう。
322:Linax初心者
06/07/25 06:33:39
すいません初心者で。まずは日付をキーボードから
入力して存在する日付かどうか判断して、うるう年の
計算して入力された日付が正しければ、正常表示を
間違いなら、再入力を促すものです。たとえば20061313はありえない
日付ですが20060220は正しい日付でその年がうるう年かどうか
判断して2006年 2月20日 水曜日と表示したいのですが
教えていただけますか。よろしくお願いします
323:デフォルトの名無しさん
06/07/25 08:45:49
えーと、なにを教えればよいのでしょう。
324:Linax初心者
06/07/25 09:42:19
すいませんが、会社の嫌がらせでまったくコンピュータ
したことがパソコンぐらいの45才です。リストラされそうなのですが
まったく知識がなくて本を読んでもよくわかりませんから
できましたらはじめから教えていただけませんか。
お願いします。うるう年の計算がわかりませんしその日が何曜日かも
わかりませんのでよろしくお願いします
325:デフォルトの名無しさん
06/07/25 09:55:25
>>324
それ以外にも足りん能力がわんさかあると見受けられるので、あきらめてホームレスって下さい。
326:デフォルトの名無しさん
06/07/25 10:16:18
とても45歳に見えない若々しいおじ様なのかしら♪
327:デフォルトの名無しさん
06/07/25 20:40:45
しかもマルチポスト
どうやって釣られてあげればいいのかな?
328:デフォルトの名無しさん
06/07/25 22:15:54
まずはマスタファイルを作るんだ
20060725,火
20060726,水
20060727,木
20060728,金
:
:
あとはわかるな?
329:デフォルトの名無しさん
06/07/25 22:33:45
そうそう、マスタファイルを作るスクリプトを作ればかなり効率が上がるよ
330:デフォルトの名無しさん
06/07/28 21:58:18
ディレクトリがさ
abc/ def/ ghi/
ってな風に同じ階層に3つあって、それぞれの中に
srcに対応したMakefileがあんだけどmakeすると
abc/ def/ ghi/ ~lib.a
とか自ディレクトリより一つ上に生成されてるのよ
んでabc、def、ghiどれmakeしても同じ名前のライブラリ作ってんだけど
これ作った人は何したかったのかわかんねぇ?
これが今日発生したバグですた・・・。
ぼすけてw
331:デフォルトの名無しさん
06/07/30 22:56:47
>>330
お前にはうかがい知れないすごい思想なのは分かった。
332:デフォルトの名無しさん
06/07/31 09:15:04
sed -f henkan.txt input.txt のhenkan.txtの部分を
ヒアドキュメントで書く方法ないでしょうか。無いか。
たんにテキストファイル増やすのが面倒なだけなんですが…
333:デフォルトの名無しさん
06/07/31 11:13:36
>>332
もしかして、sedスクリプトのコメントをスクリプトファイルに入れたいって話?
それともその行が書かれたシェルスクリプト内にコメントを入れたいって話?
シェルもsedもコメントは#で始まるから、どちらの場合も好きなところに書けばいいとおもうが。
334:デフォルトの名無しさん
06/08/01 00:07:14
>>333
はぁ?
335:デフォルトの名無しさん
06/08/01 04:00:04
>>332
複数処理なら、以下の何れかでいけると思う。
1) sed -e '処理1' -e '処理2' ... file
2) sed '
処理1
処理2
....
' file
※ 複数行をシングルか、ダブルの引用符で囲む
囲みの中が複数行でも、sedには1つの引数として渡される
3) sed '処理1^J処理2^J...' file
※ ^J は vi で入力するなら ctrl+ESC 後に ctrl+J
OSの違いやsedのバージョンによっては駄目な方法もあるかも
シェルによって駄目とかはないと思うが、c系は自信ない
336:335
06/08/01 04:16:53
>>332
追加でこんなんでもいいわけだが・・・
4) sed '処理1' file | sed '処理2' | sed ...
つうか、何がしたいの?
複数処理をしたいんじゃないならスレ汚し、すまんす
337:335
06/08/01 04:28:16
ついでだからもう一つ、スレ汚しすまん
ヒアドキュメントに拘るなら、sedの代わりにedかex使え
ed file <<EOF
...
EOF
338:デフォルトの名無しさん
06/08/01 10:14:10
332です。ありがとうございます。
これだけ方法があるのにsedのmanを見て何も思い付かなかった
頭の悪さに恥じ入るばかりでございます
339:デフォルトの名無しさん
06/08/02 06:38:49
>>335
処理の中身にもよるが、こういう書き方でもたいていは動くはず。
一行でかけるし、プロセスを一つにまとめられるのでわりとお勧め。
$ sed '処理1; 処理2; 処理3; ...' file
340:デフォルトの名無しさん
06/08/02 08:28:05
>>339 プロセスを一つにまとめられるので
それじゃまるで>>335はプロセスが一つじゃないと言ってるように聞こえる。
341:デフォルトの名無しさん
06/08/02 14:19:39
>>340
そういやプロセスが複数なのは >>336 だけだったな。
レス番を間違えた
342:デフォルトの名無しさん
06/08/02 22:11:20
>>339
みんなが4000行かかるプログラムをたった1行で書いてやるぜ!的な。
343:デフォルトの名無しさん
06/08/02 22:49:29
よーし、俺がたった1行でコンソール埋め尽くしちゃる
echo *{,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,}
344:デフォルトの名無しさん
06/08/03 11:12:37
毎月定期的に取得しているファイル名を、例えば、
filename_`date +%Y%m%d`.txt
などとして日付けを付けて保存しています。
これが先月のものと差がない場合、新しい方を破棄したくて、
date コマンドで先月の同じ日を吐き出すことができないかと思っているのですが、
date は現在の日付けを表示することしかできないのでしょうか?具体的には、
diff filename_20060801.txt filename_20060701.txt
で内容が完全に同じだったら、filename_20060801.txt を削除するようにしたいです。
環境は Linux、kernel-2.6.9-34 です。CentOS です。
どなたかアドバイスをお願いいたします。
345:デフォルトの名無しさん
06/08/03 11:53:21
>>344
date -d "last month" +%Y%m%d
346:デフォルトの名無しさん
06/08/03 12:32:05
うおお、それでいいんですか!
どうもありがとうございます。
347:デフォルトの名無しさん
06/08/03 13:22:13
>>345
HPUXのdateはそんな便利な機能ないからうらやましいな。
前日とかならTZ変えればいいけど
348:デフォルトの名無しさん
06/10/12 15:54:09
申し訳ありません。
cshで@引数が、空であるかどうかと、A引数が、数字(何桁でも可)のみ受けとる
という条件文を書きたいのですが、
@は、if ( $# -eq )や if(x$name =x)とやってもうまくいきません。
Aは、ダイレクトにif(0<=#1<=9) というやりかた?しかわかりません。
もうしわけないのですが、ご教授願えませんか?
ヒントや参考文献でもかまいません。宜しくお願いします。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5111日前に更新/248 KB
担当:undef