親切な方だれか回答をば・・・
下のようなsrcがあってbbbだけ抜き出すのは可能ですか?
bbbは変数でgrep bbbは使えません。
---------------------------------------------------------
テストテスト
bbbbbb
-------------------------------------------------------
672名無しさん@お腹いっぱい。sage2005/07/17(日) 16:39:10
そりゃできるだろうが、条件が分からんよ。
「テストテスト」と「bbbbbb」の違いは何?
grep使えないのはなぜ?宿題だから?
673名無しさん@お腹いっぱい。sage2005/07/17(日) 16:39:31
>>671
質問が不明確。
VAR=bbb
grep "$VAR"
ということじゃないよね?
674名無しさん@お腹いっぱい。sage2005/07/17(日) 17:05:40
>>671
こうかな?
cat src | tr -d "¥n" | sed -e "s,,¥n,g" | sed -e "s,.*]*>,,"
675名無しさん@お腹いっぱい。sage2005/07/17(日) 20:30:47
echo bbb
676名無しさん@お腹いっぱい。sage2005/07/17(日) 20:58:37
>>673
あ、コマンドオプションにも変数使えたんですね。
どうもありがとうございました。
677名無しさん@お腹いっぱい。sage2005/07/17(日) 21:24:31
工エエェェ(´д`)ェェエエ工
そんなオチかよ!
678名無しさん@お腹いっぱい。sage2005/07/18(月) 01:51:18
コマンドラインオプションに変数使えなかったら、どこで使うんだ
よ。。。
679名無しさん@お腹いっぱい。sage2005/07/21(木) 13:35:37
拡張子が.shのファイルをWindowsで実行するにはどうすればいいですか?
例えば.shを.batに書き直すようなツールはありますでしょうか。
ぜひ教えてください。
シェルスクリプトもバッチも知識ゼロです。
Windows板で質問したらUNIX板へ帰れって言われました。
UNIX環境の質問ではないのですが、よろしくお願いします。
680名無しさん@お腹いっぱい。sage2005/07/21(木) 13:37:03
Cygwin使っている人いますか? その15
http://pc8.2ch.net/test/read.cgi/unix//
681名無しさん@お腹いっぱい。sage2005/07/21(木) 14:24:39
run.exe
682名無しさん@お腹いっぱい。sage2005/07/21(木) 15:04:55
シェルスクリプトとバッチの知識を身につける
683679sage2005/07/21(木) 15:56:48
>>680-682
Cygwinインストールしてみました。
Shell Scriptを実行してみたところsyntax errorが出たので、
やはり知識を身につけなければいけないようです。
公式な配布物の中身をいじってないのにErrorが出るのが何でかわかりませんが・・・orz
684名無しさん@お腹いっぱい。sage2005/07/21(木) 16:00:26
なにをやろうとしてるの?
685名無しさん@お腹いっぱい。sage2005/07/21(木) 17:01:26
改行コードが違ってたり、ってことは配布物いじってないならないか…。
686名無しさん@お腹いっぱい。sage2005/07/21(木) 20:20:39
お約束 >>679
「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条。
1. ハードウェア、OSのバージョン等には一字一句触れない。
2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。
3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。
目の前で生じている現象をそのまま具体的に書くなどもっての外。
事実より俺様の脳内解釈を優先すべし。
4. 独り言文体で必勝。
「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」
5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。
6. もう試したことを得意げに指摘してくる奴には、厳しく対応。
「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」
"どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。
7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。
「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」
示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので
絶対に避ける。
8. 情報は小出しに。
「エスパーきぼんぬ」 補足
上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。
そのような悪い質問に対して答えられるのは,
質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ,
という意味であって,決して,高度な技術を持つユーザに対する尊称でなはい。
まちがっても「エスパーの方,回答お願いします」
なんて痛い質問するな。つうか氏ね。
687名無しさん@お腹いっぱい。sage2005/07/21(木) 20:28:59
windows で sh を実行などというからには
何か勘違いをしてるっぽいので、
詳しく聞きだしてみたい。
688名無しさん@お腹いっぱい。sage2005/07/21(木) 20:38:07
>>686
補足は蛇足。コピペ時にはカットよろしこ。
689名無しさん@お腹いっぱい。sage2005/07/21(木) 20:59:09
>>686
これ貼るだけでいいよ。
http://myu.daa.jp/osiete/index.html
690名無しさん@お腹いっぱい。sage2005/07/21(木) 22:03:52
>>679
ちょとかわいそうなのでマジレス。
シェルの種類は複数あって、拡張子が.shであっても
書式が共通しているとは限らない。
(Cygwin のやつは bash という種類。)
その「公式な配布物」が何なのかを書けば
もう少しまともなレスが得られるかも知れない。
691名無しさん@お腹いっぱい。sage2005/07/21(木) 23:01:04
シェルスクリプトファイルの絶対パスをシェルスクリプト自身で
見つけ出すことは出来ますか?
pwdとやってもシェルスクリプトを起動させた時点でのカレント
ディレクトリしか出ないので質問しました。
692名無しさん@お腹いっぱい。sage2005/07/21(木) 23:04:28
>>691 $0 とか `dirname $0` とか
693679sage2005/07/21(木) 23:22:17
>>684-690
お騒がせしてます;
根本的にはCygwinでbashを使うことで"解決"しております。
アドバイスありがとうございました。
SyntaxErrorは行番号が出ているものの、
その行の記述が間違っていないことがわかったので、
自分が悪いと思って出し辛かった、といいますか
人に聞く前に調べようと思って、あの場では書きませんでした。
エスパーの方,回答お願いします。つうか氏ぬ。
#今回はじめて掲示板のお世話になったのですが、実際>>686のように書かれると嫌になるね。質問1つもちゃんとできない自分が。
694691sage2005/07/21(木) 23:23:16
便利なコマンドがあるんですね。
パスが通っている場合や、カレントディレクトリで実行した場合は
絶対パスが出るみたいですが、下のようにディレクトリを指定して実行した場合は
ディレクトリ名しか出ません。つまり、
shtest/shtest.sh
を実行したときは shtest だけが得られる。得られたパスの初めの文字を判定して
/(スラッシュ)でなければ `pwd`/ を付け加えるというようにすればいいと
思うのですが、どうすれば出来るのですか?たびたびすみません。
695名無しさん@お腹いっぱい。sage2005/07/21(木) 23:28:21
>>692
$0 いじって呼ばれたらだめだな。
696名無しさん@お腹いっぱい。sage2005/07/21(木) 23:57:18
他にも方法はあるけど正規表現を使わない方向で。
#!/bin/bash
if [ "${0#/}" != "$0" ]; then
path="$0"
elif [ "${0#./}" != "$0" ]; then
path=`pwd`"${0#.}"
elif [ "${0#../}" != "$0" ]; then
path=`dirname "$(pwd)"`"${0#..}"
else
path=`pwd`/"$0"
fi
echo $path
697名無しさん@お腹いっぱい。sage2005/07/22(金) 00:36:21
DIR=`dirname $0`
APATH=`cd $DIR; pwd`/`basename $0`
echo $APATH
とか。
698名無しさん@お腹いっぱい。sage2005/07/22(金) 00:40:21
http://www.nurs.or.jp/‾asada/FAQ/UNIX/section4.4.html
699名無しさん@お腹いっぱい。sage2005/07/22(金) 00:48:20
本当にFAQですよね。
700名無しさん@お腹いっぱい。sage2005/07/22(金) 00:52:12
リンクとかされてることもあるしね。
701名無しさん@お腹いっぱい。sage2005/07/22(金) 02:02:40
環境によるとは思うんだけど、$0を入れ換えられてる場合をのぞけば、
shellの中で、
realpath $0
か、
readlink -f $0
が、スマートなんじゃないだろうか?
702名無しさん@お腹いっぱい。sage2005/07/22(金) 03:25:52
それがある環境に限れるならね。
703691sage2005/07/22(金) 08:39:45
ありがとうございます。いろいろ試してみようかと思います。
704名無しさん@お腹いっぱい。sage2005/07/22(金) 08:50:19
パスを書いておけばおk
705名無しさん@お腹いっぱい。2005/07/22(金) 15:33:00
awkスクリプトをperlスクリプトに変換する
a2pコマンドが吐き出すシェルスクリプトについてですが、
2行目、
eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
のように、"$@"をわざわざ ${1+"$@"}と書く周到ぶりですが、
その反面、$0 を、"$0"じゃなく裸のまま $0 と書いちゃってます。
今はディレクトリ名にスペースを含むこともあったりするし、
ちゃんと "$0" と記述したものを出力するべきじゃないでしょうか。
逆に、$0で桶なら、${1+"$@"}だけ拘っているのが、
クォリティ的にちぐはぐに思います。
識者の意見求む。
706名無しさん@お腹いっぱい。2005/07/22(金) 21:31:01
今はディレクトリ名にスペースを含むこともあったりするし、
707名無しさん@お腹いっぱい。sage2005/07/22(金) 21:36:07
藤岡弘、
708名無しさん@お腹いっぱい。sage2005/07/22(金) 21:44:56
確かに「今は」の意味が分からんな
709名無しさん@お腹いっぱい。sage2005/07/22(金) 22:21:07
Sambaで共有して、エクスプローラーでフォルダーを作ったりもするから、
"/usr/local/Program Files" の下にシェルスクリプトがあったり
するんじゃないの?
710名無しさん@お腹いっぱい。sage2005/07/22(金) 22:41:00
Sambaなんて10年前からあるじゃん
711名無しさん@お腹いっぱい。2005/07/22(金) 22:42:03
>>707
http://www.wwwwwwwwww.net/1/soko/VIP00991.JPG
712名無しさん@お腹いっぱい。sage2005/07/22(金) 22:44:46
10年前は今じゃないの?
713名無しさん@お腹いっぱい。sage2005/07/22(金) 22:50:12
10年前と今の区別がつかない老人がいるスレはここですか?
714名無しさん@お腹いっぱい。sage2005/07/22(金) 22:53:05
>>705
a2pのバグと思われ。(s2pもそうかな)
所詮perlのおまけソフトなので、
それがperlクオリティー。
715名無しさん@お腹いっぱい。sage2005/07/23(土) 02:08:25
${1+"$@"}の意味がわかりません (><)
716名無しさん@お腹いっぱい。sage2005/07/23(土) 07:42:24
>715 >293-
717sasasa2005/07/23(土) 12:17:12
別のスクリプトをlsという名前に変えた際に正しいlsが表示されるようにするにはどうすればいいのでしょう?
718名無しさん@お腹いっぱい。sage2005/07/23(土) 12:18:39
command ls
719名無しさん@お腹いっぱい。sage2005/07/23(土) 12:30:13
>>717
その、新しいスクリプトのlsが存在するディレクトリに
先にPATHを通す。
PATH=/home/hoge/bin:$PATH; export PATH
とか。
(csh系は糞なので敢えて説明はしないがrehash等が必要)
>>718 はアフォなので無視。
# commandコマンドの動作を勘違いしてるようだし、
# command自体、Bourneシェルでは使えない
あ、「正しいls」というのが、「元の標準のls」という意味なら、
/bin/ls と、フルパスで実行する。
720名無しさん@お腹いっぱい。sage2005/07/23(土) 12:36:58
>>719
(゚Д゚)ハァ?
721名無しさん@お腹いっぱい。sage2005/07/23(土) 12:38:58
>>719
(゚Д゚)ハァ?
722名無しさん@お腹いっぱい。sage2005/07/23(土) 12:59:06
>>718
lsがシェル関数だとcommand lsで回避できますが、
スクリプトだとだめでした。
>>719
ありがとうございます。
やっぱり絶対PATHしかないんですね。
723sasasa2005/07/23(土) 13:16:11
あとプロファイルにおいて
"
'
`
の意味って何を意味しているんですか?
724名無しさん@お腹いっぱい。sage2005/07/23(土) 13:20:29
>>723
'"` はクォートという。
質問が基本的過ぎるので、
man shして、クォートの欄を読むか、
シェルスクリプトの参考書のクォートの欄を読め。
ここでの質問はもっと具体的なものでよろしこ。
725名無しさん@お腹いっぱい。sage2005/07/23(土) 13:30:51
>>723
たとえば、
rm -rf /
は危険なコマンドとして有名だが、
' 'を使って、 'rm -rf /' とすると、
スペースを含めて「rm -rf /」という名前のコマンドとみなされるので、
実行しても、
# 'rm -rf /'
rm -rf /: No such file or directory
と、エラーになるので全く安全。
では練習問題。' 'を ` ` に変えて
# `rm -rf /`
をやってみよう。
726名無しさん@お腹いっぱい。2005/07/23(土) 13:37:28
>>725
これはひどい練習問題だ。
727名無しさん@お腹いっぱい。sage2005/07/23(土) 13:39:38
しかもプロンプトが#でいやらしいぜ
728名無しさん@お腹いっぱい。sage2005/07/23(土) 14:03:50
>>725
全く安全というか、意味ねーし
729名無しさん@お腹いっぱい。sage2005/07/23(土) 14:04:34
>>728
(゜Д゜)ハァ?
730名無しさん@お腹いっぱい。sage2005/07/23(土) 14:37:16
>>725
お前、意地悪だな
731名無しさん@お腹いっぱい。2005/07/23(土) 14:47:26
>>723
課題の内容をここで聞いてるのか・・・・。
ちなみにきっと俺とお前は同じ大学だろう。
732名無しさん@お腹いっぱい。sage2005/07/23(土) 14:54:24
>>717
http://pc8.2ch.net/test/read.cgi/unix//573
733名無しさん@お腹いっぱい。sage2005/07/23(土) 15:43:56
>>725
ぷげら
734名無しさん@お腹いっぱい。2005/07/25(月) 00:07:31
質問させてください。
特定のディレクトリを次々にバックアップするために、
コピー元 => コピー先
のペアをリスト化してループ処理させたいのですが、
どのように記述すればよいのでしょうか。
735名無しさん@お腹いっぱい。sage2005/07/25(月) 00:09:40
なにしたいのかいまいちわからんが
find でがんばる、とか?
736名無しさん@お腹いっぱい。sage2005/07/25(月) 00:16:59
>>734
なんだいな?backuplistファイルの内容が
source1 dest1
source2 dest2
...
とかなってたら、
cat backuplist | while read source dest
do
cp $source $dest
done
とかでいいじゃん。cpの代わりにtarなりcpioなり、cp -aなり、好きにして。
737名無しさん@お腹いっぱい。sage2005/07/25(月) 00:17:07
>>735
えーと、
list={
. { /hoge/hoge1 => /fugo/fugoA }
. { /hoge/hoge2 => /fugo/fugoB }
. { /hoge/hoge3 => /fugo/fugoC }
}
foreach ( pair in list )
. コピー等の処理 pair[0] , pair[1]
みたいなことをしたいんです。
738名無しさん@お腹いっぱい。sage2005/07/25(月) 00:18:04
>>736
まさにそれです^^
ありがとうございました。
739名無しさん@お腹いっぱい。sage2005/07/25(月) 00:50:55
joinとpasteの違いってなんですか?
740名無しさん@お腹いっぱい。sage2005/07/25(月) 01:00:25
man join
man paste
741名無しさん@お腹いっぱい。sage2005/07/25(月) 10:19:39
>>725
そんな餌に釣られるクマー!
linuxが起動しなくなったんですけど(><)
742名無しさん@お腹いっぱい。sage2005/07/25(月) 21:08:56
>>741
エラーが出るよ。
743名無しさん@お腹いっぱい。2005/07/26(火) 01:00:43
すみません、質問があります。
mvコマンドで、一度に移動できるファイル数には上限があるのでしょうか?
最大で99999個のファイルを移動できるのか調査しているのですが・・・・
catコマンドが一度に1000件づつしか処理できないようなのですが。
ご存知の方がおりましたらどうぞよろしくお願いします。
744名無しさん@お腹いっぱい。sage2005/07/26(火) 01:22:27
mv自身はintの上限-2個まで移動できると思う
745名無しさん@お腹いっぱい。sage2005/07/26(火) 01:41:35
>>743
そんな調査するより xargs を使うべきじゃないの。
7467432005/07/26(火) 02:21:40
>>744 そうですか、それなら可能ですかね。。。?アドバイスありがとうございます。
>>743 xargsですか。ちょっと知らないコマンドですが、調べてみますね。レス感謝です。
747名無しさん@お腹いっぱい。sage2005/07/26(火) 02:21:47
>>743
find /usr/include -name '*.h'|xargs grep ARG_MAX
748名無しさん@お腹いっぱい。sage2005/07/26(火) 02:40:21
getconf ARG_MAX
749名無しさん@お腹いっぱい。sage2005/07/26(火) 02:46:40
>>743
こういったことの周りの知識を知らないのも問題だが、
知識不足なのにいたずらに限界に挑戦しようとする方も問題。
知識不足なら知識不足なりに秘孔をついてしまわぬよう安全策をとるのが一つの見識。
750名無しさん@お腹いっぱい。sage2005/07/26(火) 07:55:30
>>745
確かに xargs -n で引数を分割して実行できるが、
xargsはスペースや改行等を含んだファイル名を
正しく扱えないという、仕様上のバグがあるので、
xargs自体obsolete or deprecated。
xargs -0 (xargs --null)が使えるのはGNU xargsだけなので、
一般には使えないと考えるべき。
751名無しさん@お腹いっぱい。sage2005/07/26(火) 09:42:40
逆に、ファイル名に問題あるのが確実にない状況なら十分使える。
でなきゃ GNU の入れりゃいいじゃん。
752名無しさん@お腹いっぱい。sage2005/07/26(火) 09:44:18
>>750
だけではない。
753名無しさん@お腹いっぱい。sage2005/07/26(火) 09:47:48
>>752
何が?
754名無しさん@お腹いっぱい。sage2005/07/26(火) 09:59:11
(xargs -0 (xargs --null)が使えるのはGNU xargs)だけではない。
755名無しさん@お腹いっぱい。sage2005/07/26(火) 11:01:49
>>751
「ファイル名に問題ないことが確実」な状況って、
自分の作業用ディレクトリ下で、
書き捨てスクリプトを書く場合くらいしかないぞ。
ユーザー開放のディレクトリ以下を一括処理したい場合、
どういうファイルネームが存在するかの仮定をしちゃいけないし、
GNU物を勝手に入れるのも禁止だから、
結局xargsなんて使えん、のが結論。
756名無しさん@お腹いっぱい。sage2005/07/26(火) 11:03:45
>>755
勝手に入れちゃだめならしかるべき手続きを踏めばいいじゃない。
757名無しさん@お腹いっぱい。sage2005/07/26(火) 11:11:25
ユーザー開放のディレクトリ以下を一括処理したい、と仮定されました。
758名無しさん@お腹いっぱい。sage2005/07/26(火) 12:30:03
まあWindowsユーザは空白含みとか日本語ファイル名は普通に平気で付けるしな
特にSambaサーバにしてるならそういうファイル名は全然珍しくないわな
759名無しさん@お腹いっぱい。sage2005/07/26(火) 16:14:40
自分も windows では日本語空白記号なんでも使うな。
760名無しさん@お腹いっぱい。sage2005/07/26(火) 16:24:47
そこで、zargs ですよ。
761名無しさん@お腹いっぱい。sage2005/07/26(火) 17:55:03
>>750
Solaris 9 だと空白は大丈夫だし、改行も ¥ でエスケープすれば問題なしですが。
$ /bin/echo 'a b¥nc¥¥¥nd' | xargs -L 1 -I '{}' /bin/echo "'{}'"
{a b}
{c
d}
762名無しさん@お腹いっぱい。sage2005/07/26(火) 17:56:12
>>761
いまどきSolaris使っている馬鹿ってpupupu−−−
763名無しさん@お腹いっぱい。sage2005/07/26(火) 18:23:08
>>762
「Soralis」と書けばよかったのに
764名無しさん@お腹いっぱい。2005/07/28(木) 08:09:48
>>761
xargsの-L 1オプション使ったら、
1行ごとにコマンド(echo)が実行されてしまうから、
元質問の、「まとめて処理」ができないだろ。
それに、「改行を ¥ でエスケープ」と言っても、
そう都合良く findで出力できないだろ。
さらに、ファイル名に普通の文字として、
" や ' や ¥ などが含まれていると
やっぱり駄目だろ。
よって、xargsは使えん。
765名無しさん@お腹いっぱい。sage2005/07/28(木) 08:23:23
改行文字がファイル名に含まれてるケースって、そんなにあるか?
基本的にそれは考慮せんでもいいと思うんだが
766名無しさん@お腹いっぱい。sage2005/07/28(木) 09:24:00
ファイル名にはヌル文字も使えなかったっけ?
だとしたら xargs -0 も完全な解決策にはならないが。
767名無しさん@お腹いっぱい。2005/07/28(木) 10:05:15
>>766
ファイル名にnull文字は使えねーよ。
だからxargs -0が最もマトモな解決法なのだが、
Solarisとかで使えないから問題になってるんだよ。
768名無しさん@お腹いっぱい。sage2005/07/28(木) 10:10:17
>>765
改行は滅多にないとしても、
ファイル名に ' " ¥ などが含まれているのは
よくある。
「Don't Cry.mp3」とかね。
xargsが ' " ¥ を特殊文字扱いするのが問題になる。
769名無しさん@お腹いっぱい。sage2005/07/28(木) 11:46:07
>>768
xargsが単純に改行をセパレータとして扱うような
プログラムだったなら、はるかにマシだっただろうね
770名無しさん@お腹いっぱい。sage2005/07/28(木) 14:45:33
大学のマシンに xargs が なぜか /usr/local/X11/bin にあったのを思い出した
771名無しさん@お腹いっぱい。sage2005/07/28(木) 14:50:42
>770
あっ、そんな記憶ある。
NEWS-OS 4 (3かな?) じゃないかな。
772名無しさん@お腹いっぱい。sage2005/07/28(木) 18:31:44
NEWS-OS 4は xargs が付属していないね。
/usr/5binにすらない。
(/usr/5bin/cpioとかならある・・ちなみにunameもない・・)
まあ、xargsは元SysV系ということで、
「使わなくても済むはずのコマンド」の扱いだったのだろう。
773761sage2005/07/28(木) 19:56:55
>>764
761 で -L 1 を付けたのは、この例だと 1 行ずつ処理しないと
表示が分かりづらいからです。説明が悪かったですね。
改行の入ったファイル名は (find 的に) 無理ですが、
何とかすれば何とかなります。
$ touch "sp ace"
$ touch "single'quote"
$ touch 'double"quote'
$ touch 'back¥slash'
$ find . -type f | sed -e 's/¥¥/¥¥¥¥/g' -e 's/"/¥¥"/g' -e 's/¥(.*¥)/"¥1"/' | xargs /bin/sh -c 'echo "[$1][$2][$3][$4]"' --
[./sp ace][./single'quote][./double"quote][./back¥slash]
ま、そこまでして使いたいかと言えば No ですが。
774名無しさん@お腹いっぱい。sage2005/07/28(木) 20:27:47
>>771
たしかにマシンのほとんどはNEWSだった。記憶があやふやだったので
local をつけたけど、やはり/usr/X11/binだったのかな
775771sage2005/07/29(金) 00:50:15
>772, 774
記憶違いだったようで、スミマセン。
ひょっとしたら、初心者の私が
「ファイル名が x で始まるのに、どうして/usr/bin/X11にないんだ」
(笑わないでオクレ!)
と思ったのが記憶に残っていたのかもしない。
あっ、 NEWS-OSの X 関係は /usr/bin|lib/X11というのも違うかも。
近くの席にはSUN 3 が有ったなぁ。
776名無しさん@お腹いっぱい。sage2005/07/29(金) 03:39:56
>>772
xargs はあった方が良いと思うんだが。
これの代わりをするには、たくさんコマンド組み合わせてやらないといかん希ガス
777名無しさん@お腹いっぱい。sage2005/07/29(金) 08:14:57
よくわからんが775は771ではない。772の間違いかな。ただ、X関係の下に
あったという記憶は同じようだけど。NEWSのキーボードのタッチは好きだった。
「‾」の位置のせいで痛いミスをしたことがあったが…
xargsはコマンドライン以外で使ったことがないかもしれん。
778名無しさん@お腹いっぱい。sage2005/07/29(金) 08:19:04
>>776
xargsは実行時効率とタイプ量減らすためって気がする
たんに機能の話だけで言えば
cmdA | xargs cmdB
は
cmdA | while read i; do cmdB $i; done
でいいし(後者は効率が悪いがIFSで適切なデリミタを設定することもできる)
779名無しさん@お腹いっぱい。sage2005/07/29(金) 08:28:34
いつまで引っ張る気だ。
780名無しさん@お腹いっぱい。sage2005/07/29(金) 10:04:04
771=775 です。
随分昔の話なので、私の記憶が間違っていたのかと思いました。
>777
コマンドライン以外で使うxargs って、スクリプトの中に書くという事ですよね。
それとも、使いやすいGUIが有るとか? (そんなGUI 想像つかない)
# スレ違いなんで、このくらいにしておきます。 orz
781名無しさん@お腹いっぱい。sage2005/07/29(金) 18:23:59
argument が無限に取れるシェルがあれば
xarg はいらないの?
782名無しさん@お腹いっぱい。sage2005/07/29(金) 18:26:25
シェルが取れてもコマンドが取れなければあまりい意味が無い
783名無しさん@お腹いっぱい。sage2005/07/29(金) 18:37:57
でもそれは xargs でも解決できないよね。
784名無しさん@お腹いっぱい。sage2005/07/30(土) 09:24:10
>>783
xargs -i cmd {} でほぼ解決できる。
パフォーマンスは知らん。
785名無しさん@お腹いっぱい。2005/07/30(土) 10:19:58
>>784
だからぁー、-iオプション付けると
-l 1も暗黙に付いちゃうから、xargs使う意味がなくなるんだよ。
解決するのはスペースを区切り文字とみなさないことだけであって、
¥ とか ' とか " の問題はそのまま未解決。
786名無しさん@お腹いっぱい。sage2005/07/30(土) 10:28:10
>だからぁー、-iオプション付けると
>-l 1も暗黙に付いちゃうから、xargs使う意味がなくなるんだよ。
意味不明。
787名無しさん@お腹いっぱい。sage2005/07/30(土) 11:01:57
>>785
何を言ってるんだ?w
788名無しさん@お腹いっぱい。sage2005/07/30(土) 14:54:36
多数のファイル名を拡張子を付けたファイル名に変換したいのだがrenameはつかえるのかな?
f1 f2 f3 f4 ->f1.jpg f2.jpg f3.jpg f4.jpg
789名無しさん@お腹いっぱい。sage2005/07/30(土) 15:00:30
for file in * ; do
mv $file $file.jpg
done
790名無しさん@お腹いっぱい。sage2005/07/31(日) 21:14:35
>>789
rename って言ってるってことはMS-DOSプロンプトなんだろうよ
正解は >>791 よろしく
791名無しさん@お腹いっぱい。sage2005/07/31(日) 21:20:03
ちょっくらうんこいってくる。
792名無しさん@お腹いっぱい。sage2005/07/31(日) 21:22:19
DOSプロンプトだったら、rename * *.jpg
793名無しさん@お腹いっぱい。sage2005/07/31(日) 21:37:19
Linuxだとrenameというコマンドがディス鳥標準で付いていて、一応使える。
ただし一般的ではない。
>>789
はダブルクォート付けていないから、減点だな。
794名無しさん@お腹いっぱい。sage2005/07/31(日) 21:45:25
そもそも >>788 は「多数のファイル名を」って言ってるんだから、
* はまずいだろ
795名無しさん@お腹いっぱい。sage2005/07/31(日) 22:00:17
>>788 が言う「多数」は4つくらいのようだ。
796名無しさん@お腹いっぱい。sage2005/08/01(月) 08:28:05
zsh 使ってるなら zmv も便利
797名無しさん@お腹いっぱい。sage2005/08/02(火) 12:42:06
tailの逆、つまり先頭から(ファイル最終のn行前)まで表示するにはどうすれば
いいでしょう?
798名無しさん@お腹いっぱい。sage2005/08/02(火) 12:42:33
head
799名無しさん@お腹いっぱい。sage2005/08/02(火) 13:38:30
>>797
tail -r
800名無しさん@お腹いっぱい。sage2005/08/02(火) 23:45:18
>>799
ひねくれ者め(笑)
801名無しさん@お腹いっぱい。sage2005/08/03(水) 00:25:16
liat
802名無しさん@お腹いっぱい。sage2005/08/03(水) 00:56:37
ファイル最終の n 行前までって言ってるんだから、
実際のところ head で実現するのは苦しい気がする。
(head で指定できる行数は限りがあったと思うので。)
てことで
tail - >
comm -23
rm -f
かな。
803名無しさん@お腹いっぱい。sage2005/08/03(水) 02:44:09
ファイル途中にtmp_fileと同一行が出たらおかしくならないか?
804名無しさん@お腹いっぱい。sage2005/08/03(水) 03:14:44
comm はソートされたファイルじゃないと使えない
805名無しさん@お腹いっぱい。sage2005/08/03(水) 03:32:44
んな、ファイル丸ごと何度も読み書きするくらいだったら、たとえば
last=100
rows=`wc -l file | cut -d ' ' -f 1`
head -n `expr $rows - $last` file
とか。
806名無しさん@お腹いっぱい。sage2005/08/03(水) 03:37:55
wc -l file | cut -d ' ' -f 1
は
wc -l < file
でいいだろ
807名無しさん@お腹いっぱい。sage2005/08/03(水) 07:23:57
>>806
??
808名無しさん@お腹いっぱい。sage2005/08/03(水) 10:14:37
tail -r | tail +n | tail -r
GNU tail では -r はないようなのでかわりに tac を。
809名無しさん@お腹いっぱい。sage2005/08/03(水) 12:55:11
tail -rだと全文をバッファに抱えるプロセスを二つ重ねないといけないので、
あんまり嬉しくないんですよね。
というわけで、こうかなあと。(n=4の場合)
ruby -ne '(q||=[])<<$_;q.size<=4||print(q.shift)' file
810名無しさん@お腹いっぱい。sage2005/08/03(水) 13:07:44
echo '1,$-Np' | ed file
811名無しさん@お腹いっぱい。2005/08/03(水) 17:21:46
質問させてください。
スクリプトを実行したら
login:
名前を打ち込んで
password:
パスを打ち込む(非表示)
パスはファイルにリダイレクト
っていうのを作りたいんですが。バッシュで。
途中で文字列を入力させるやり方が分かりません。
教えてください。おねがいします。
812名無しさん@お腹いっぱい。sage2005/08/03(水) 17:37:23
read -p 'login: ' NAME
read -s -p 'password: ' PASS
echo $PASS > file
813名無しさん@お腹いっぱい。sage2005/08/03(水) 20:14:02
そんでそんで? 誰のパス盗もうとしてんの?(σ ̄ー ̄)σ>>811
814名無しさん@お腹いっぱい。2005/08/04(木) 02:44:04
シェルスクリプトで perl -pe chomp と同じことをしたいのですが、
どのようにやればよいでしょうか?
815名無しさん@お腹いっぱい。sage2005/08/04(木) 08:57:48
#!/bin/sh
exec perl -pe chomp
816名無しさん@お腹いっぱい。sage2005/08/04(木) 13:31:14
readで出来たのか
知らなかった
817名無しさん@お腹いっぱい。sage2005/08/04(木) 13:39:59
cmd1 | cmd2
上記のようなパイプで繋いだコマンドで、cmd1の終了ステータスを拾いたいのですが、
どうしたらよいのでしょうか?
818名無しさん@お腹いっぱい。sage2005/08/04(木) 14:25:13
csh -c 'cmd1 | cmd2'
819名無しさん@お腹いっぱい。sage2005/08/04(木) 14:45:12
出来ました、ありがとうございます。
820名無しさん@お腹いっぱい。sage2005/08/04(木) 14:55:23
(((cmd1; (echo $? >&3)) | cmd2 >&4) 3>&1 | (read x; exit $x)) 4>&1
echo $?
うーん、美しくない。
821名無しさん@お腹いっぱい。sage2005/08/04(木) 22:10:15
一瞬lispに見えたw
822名無しさん@お腹いっぱい。sage2005/08/04(木) 23:58:53
>>814
tr -d '¥n'
823名無しさん@お腹いっぱい。sage2005/08/05(金) 00:59:04
>>817
bash の(たぶん)3.0じゃないと使えないと思うけど、
$ echo $PIPESTATUS[0]
とか、出来る。
ちなみに配列だから、
$ echo ${PIPESTATUS[*]}
で、全部見れる。
あと、ちょっと違うけど、
$ set -o pipefail
とかもある。
824823sage2005/08/05(金) 01:01:30
PIPESTATUS、bash-2.05bにもあったよ。
pipefailが、3.0からだった。
825名無しさん@お腹いっぱい。sage2005/08/05(金) 02:17:49
今/home/.emacsがあるとして、ユーザディレクトリにそれぞれコピーするには
どう書けばいいですか?所有者ももそれぞれのユーザに設定できますか?
826名無しさん@お腹いっぱい。sage2005/08/05(金) 02:32:28
>>825
/etc/skel に置いとけ
827名無しさん@お腹いっぱい。sage2005/08/05(金) 02:35:58
シェルスクリプトのスレよりもくだ質が似合いの質問者だな。
828名無しさん@お腹いっぱい。sage2005/08/05(金) 02:54:40
>>826 >>827
そんなぁ・・・
そこをなんとか・・・
829名無しさん@お腹いっぱい。sage2005/08/05(金) 03:15:53
くだ質いけって言われたのになんでここで粘るんだ?
だだこねる相手はママだけにしとけよ。
次の方、どうぞ↓
830名無しさん@お腹いっぱい。sage2005/08/05(金) 07:43:52
なんで怒ってるの?
831名無しさん@お腹いっぱい。2005/08/05(金) 07:47:09
$HOMEに押し着せの.emacsを強制コピーしてくる
シス管が居て、迷惑してるのですが、
これを拒否するにはどうしたらいいでしょうか?
ちなみに、root権限で上書きコピーしてくるため、
一般ユーザーのパーミッション設定では防げません。
あと、.emacsだけじゃなく、$HOME/.profile
$HOME/.xinitrcとかもコピーで潰されるので大迷惑です。
832名無しさん@お腹いっぱい。sage2005/08/05(金) 08:17:23
.emacs というディレクトリ作っといたら?
833名無しさん@お腹いっぱい。sage2005/08/05(金) 08:34:38
>>831
#!/bin/sh
cat <
From: $USER
あなたのホスト管理はクソです。
いますぐ.emacsをroot権限で上書きするというアホな行為をやめてください。
EOF
834名無しさん@お腹いっぱい。sage2005/08/05(金) 08:53:27
>>831
自分の.emacs を、.my-emacs とかにかえて、
シェルのalias を使って、
alias emacs="emacs -q -l .my-emacs"
とかしとく。
.profile の方も、同じような考え方で、
bash --norc --noprofile の後、自分のprofileを読み込むようなscriptを書いといて、
毎回、loginし直す。(面倒だけど)
zsh 、ksh、tcsh等、対話的に使うshellを他のにするとかでもいいんじゃん?
.xinitrcは、
export XINITRC=$HOME/.my-xinitrc
を設定しといて、startx。
で、どうよ。
>>833 みたく、管理者に一言いうのが早いかもしんないけど。
835名無しさん@お腹いっぱい。sage2005/08/05(金) 11:18:52
ln -s /etc/passwd ‾/.emacs
836名無しさん@お腹いっぱい。sage2005/08/05(金) 11:36:49
どういうタイミングでどういう手段で何が上書きされるのか。
ログインシェルは何か。自分の権限でcronやchshは使えるか。
などによっていろいろと対抗手段は考えられるけど、情報不足。
837名無しさん@お腹いっぱい。sage2005/08/05(金) 11:41:59
>>825 に対する皮肉として書いた釣りなのに、
こんなに釣りにつき合ってくれてありがとう。
838名無しさん@お腹いっぱい。sage2005/08/05(金) 11:48:34
釣られすぎだな。
839名無しさん@お腹いっぱい。sage2005/08/05(金) 13:03:52
∧_∧ハゥッ
∧_(Д`; )
( ・∀・)玉 つ
(っ ≡つて ヽ チーン!
して_)_ノw (_)
玉を砕くと書いて「玉砕」と言う。
840名無しさん@お腹いっぱい。sage2005/08/05(金) 13:12:34
835に1票
841名無しさん@お腹いっぱい。sage2005/08/05(金) 13:32:33
>>835 も面白いけど、
ふつー、rm -f してから cpするだろうから効果なし。
842名無しさん@お腹いっぱい。sage2005/08/05(金) 16:40:35
そのふつーが期待できる管理者ならユーザの.emacsを上書きしたりなぞしない。
843名無しさん@お腹いっぱい。sage2005/08/05(金) 17:32:09
http://makimo.to/2ch/pc5_unix/996/996949546.html
の3の書き込みなんですが、意味は分かるんですが
なぜ {, という書き方なんでしょうか。
そのままぐぐってみてもヒットしないので
展開の書式を解説しているサイトを教えてください。
844名無しさん@お腹いっぱい。sage2005/08/05(金) 17:35:55
(zsh)Brace Expansion
13.6 Brace Expansion
====================
A string of the form `FOO{XX,YY,ZZ}BAR' is expanded to the individual
words `FOOXXBAR', `FOOYYBAR' and `FOOZZBAR'. Left-to-right order is
preserved. This construct may be nested. Commas may be quoted in
order to include them literally in a word.
845名無しさん@お腹いっぱい。sage2005/08/05(金) 17:42:34
>>844 は答えになっていない英語スパムだな。
>>843 は、空文字列のカンマに付いての質問と思われ。
ブレース展開自体の質問じゃないよ。
846名無しさん@お腹いっぱい。sage2005/08/05(金) 17:42:54
>>845
(゚Д゚)ハァ?
847名無しさん@お腹いっぱい。sage2005/08/05(金) 17:43:46
>>845
自分の理解力不足を棚にあげて、人を批判とはおめでたい人ですね. :-)
848名無しさん@お腹いっぱい。sage2005/08/05(金) 17:44:25
>>845
> ブレース展開自体の質問じゃないよ。
>>843
> 展開の書式を解説しているサイトを教えてください。
849名無しさん@お腹いっぱい。sage2005/08/05(金) 17:44:57
>>845
英語が読めないなら、エキサイト翻訳使えよ。
850名無しさん@お腹いっぱい。sage2005/08/05(金) 17:52:13
>>844 が言っているのは、展開時に左から右へという順序と、
ネスティング可能なことと、
カンマ自体を普通の文字として使うならクォートしろということだけ。
元質問のコマンドラインでは左から右への順序は関係ないし、
空文字列のカンマも許されることは >>844 には書かれていない。
なので、 >>844 は早とちりの外し回答だと思う。
851名無しさん@お腹いっぱい。sage2005/08/05(金) 18:09:45
この、クソチョッパリが!!!!!!!!!!!!!!!!!!!!!!!
百年謝罪しろ!!!!!!!!!!!!!!!!!!!!!!!!!!
852名無しさん@お腹いっぱい。sage2005/08/05(金) 20:29:30
>>850
> 空文字列のカンマも許されることは >>844 には書かれていない。
禁止されていないということは許されているということだろ。
853名無しさん@お腹いっぱい。sage2005/08/05(金) 20:38:18
>>852
元質問は「 {, とは何か?」と聞いているのだから、
「それはブレース展開の最初の文字列が空文字列になっているものだ」
と答えるのが的確。
>>850 はマトはずれ。
854853sage2005/08/05(金) 20:43:42
スマソ。レス番間違えた。>>850 は正解。
>>844 はマト外れ。
855名無しさん@お腹いっぱい。2005/08/05(金) 21:11:43
別スレで怒られたので、こちらでに移動します。
今/home/.vimrcがあるとして、ユーザディレクトリにそれぞれコピーするには
どう書けばいいですか?所有者ももそれぞれのユーザに設定できますか?
856名無しさん@お腹いっぱい。sage2005/08/05(金) 21:12:30
誤爆すみません。逝ってきます。
857名無しさん@お腹いっぱい。sage2005/08/05(金) 21:19:51
$HOMEに押し着せの.vimrcを強制コピーしてくる
シス管が居て、迷惑してるのですが、
これを拒否するにはどうしたらいいでしょうか?
ちなみに、root権限で上書きコピーしてくるため、
一般ユーザーのパーミッション設定では防げません。
あと、.vimrcだけじゃなく、$HOME/.xsessionや
$HOME/.cannaとかもコピーで潰されるので大迷惑です。
858名無しさん@お腹いっぱい。sage2005/08/05(金) 21:24:00
もういいから。
859名無しさん@お腹いっぱい。sage2005/08/05(金) 21:26:37
>>857
コミュニケーション能力を磨くといいよ。
860名無しさん@お腹いっぱい。sage2005/08/05(金) 21:34:21
>>859
コミュニケーション能力じゃなくて、
技術的に回避する方法はありませんか?
上司に言っても、
「シス管は彼に任せているから、彼の方針に従ってくれ」
の一点張りで話が進みません。
861名無しさん@お腹いっぱい。sage2005/08/05(金) 21:39:23
>>860
> >>859
> 技術的に回避する方法はありませんか?
あるけど、
> 「シス管は彼に任せているから、彼の方針に従ってくれ」
その彼とコミニュケーションはとったの?
862名無しさん@お腹いっぱい。sage2005/08/05(金) 21:45:48
もういいから。
863名無しさん@お腹いっぱい。sage2005/08/05(金) 21:46:34
>>862
だれも君がどう感じたかなんて聞いていないよ。
864名無しさん@お腹いっぱい。sage2005/08/05(金) 21:52:54
>>861
もちろん、とったよ。
「これはシステム管理上必要なことだから」
で話は進まず。
865名無しさん@お腹いっぱい。sage2005/08/05(金) 21:56:36
横レスすまそ。
>>861
$HOME/.xsession の場合は回避するの難しくないか?
866名無しさん@お腹いっぱい。sage2005/08/05(金) 22:04:22
_,. -−─−-- 、_
,. '´ _ -−ニ二二`ヽ、
/ / _,.−'⌒ヽ,ノ``'ミ,、
,.' / / ,,イ゙\ /入、ヾ,
. / / // -‐''"_ ヽ l l′/`_''l}
' / ,.イii/ /∠´ `ヾ' l lレ''´ ヾ
/ ,.' ii/u i{,_,, ゚ }! l li{,_,. ゚ }
. / /ii i/u uヾく,_,ノ′ l lゞi-rイ
,' /-、 i| u ' ' ` ,__〉〉 |
. /l 「ヾ'i| ,.r‐ `'U'U_,ィ}|
/ | ー}.l| /,r 'T"丁 ̄| ̄ | l|'|
}i iト、}( l! ,イ |__, ⊥ _|__,l|.ト、
`i iiiハ `| i l_/ _,ノノ|| \
. }iij. |. l |Y/ ‐┴''" ||\ \
゙l! | l|. 仁 _,__ || \ \
/ | |l lニレ'´ `ヾ'、 || \ \
/ |. |ヽ 「]、 ヾ>、|| \
/ .| |. ヽ`「ヽ }H|\
| | ヽ`「ヽ、、,__,,ノj‐|| ` ー─
u | | \`'〔`'T''''''T´ ,ノ|
| | \ ` ̄ ̄ ̄ /
| | `−──‐′
867名無しさん@お腹いっぱい。sage2005/08/05(金) 22:05:00
>>865
.xsession って #! みてくれたっけ?
868名無しさん@お腹いっぱい。sage2005/08/05(金) 22:35:33
>>867
見るかどうかは、/usr/X11R6/lib/X11/xdm/Xsession に
どう書いてあるかによって変わる。デフォルト状態の
Xsessionでも、Xのバージョンによって違ったと思う。
というか、root管理者が /usr/X11R6/lib/X11/xdm/Xsession
を編集して、そもそも$HOME/.xsessionを参照しないようにされてしまうと
一巻の終り。それに気づかない程度のアホ管理者と想像するが・・
869843sage2005/08/06(土) 00:40:56
すいません、なんかお礼を書くタイミングを逸してしまって
空文字列という意味なんですね
ありがとうございました
870名無しさん@お腹いっぱい。sage2005/08/06(土) 13:29:38
diff -u /etc/hosts{.20050801,}とかよく使いますよ。
871 2005/08/07(日) 12:53:34
>>857
そのホストとは別に、LinuxなりBSDなりマシン立ち上げて、
そっちの環境で作業すれば〜
872名無しさん@お腹いっぱい。sage2005/08/07(日) 13:12:15
(SUM=0;find /lib -maxdepth 1 -type f |xargs ls -lt|grep 'Aug 5'|awk '{print $5}'|while read SIZE;do SUM=`expr $SUM + $SIZE`;echo "$SIZE $SUM";done;echo "SUM=$SUM")
これでなんで最後のSUMがゼロになってしまうんでしょうか?
873名無しさん@お腹いっぱい。sage2005/08/07(日) 13:17:40
$find /lib/ -maxdepth 1 -type f -mtime -3|xargs wc -c
やりたいこと自体はこれでOKでした。
874名無しさん@お腹いっぱい。sage2005/08/07(日) 13:18:26
>>872
パイプでwhileにつないだ場合、
この部分はさらに別シェルで実行されるから
その次のセミコロン以降の変数には反映されない。
875名無しさん@お腹いっぱい。sage2005/08/07(日) 13:22:17
>>872
>>454
876名無しさん@お腹いっぱい。sage2005/08/07(日) 13:39:50
ある数値をパイプで受け取ったとして、それの合計値を出したいときには
どうするのがいいんでしょうか??
877名無しさん@お腹いっぱい。sage2005/08/07(日) 13:48:27
>>876
>>455
878名無しさん@お腹いっぱい。sage2005/08/07(日) 13:53:01
>>877
ありがとうございます。これでなんで上手くいくのか分りませんがとにかくそういうもんだと思っておきます。
879名無しさん@お腹いっぱい。sage2005/08/07(日) 16:11:32
>>872
シェルによって違う。
bourneとbashはパイプからだとサブシェルになる。
kornとzshはパイプからでもサブシェルにならない。
880名無しさん@お腹いっぱい。2005/08/08(月) 23:29:21
当方kshを利用しているのですが、whileループを使用して2ファイルを
読み込む処理がうまく行きません。
外側のループが処理されずに抜けてしまいます。
(個人的な推測では内側のループで外側のカーソルも移動している気がします)
どなたか、対処の方法を教えてくだされ。
ソースはこんな感じです。
function funcA
{
while read LINEB
do
処理あれこれ
done <$LINEB
}
while read LINE
do
funcA
done <$FILEA
881名無しさん@お腹いっぱい。sage2005/08/08(月) 23:35:21
>>880
ヒント:リダイレクト、ファイル記述子
882名無しさん@お腹いっぱい。sage2005/08/08(月) 23:38:46
$LINEBじは$FILEBの間違いって落ちじゃないよな。
8838802005/08/08(月) 23:42:58
>>881さん
もうちょっと、ヒントをください。
>>882さん
先ほどのソースは間違ってますが、現実は「FILEB」です。
ご指摘ありがとうございます。
884名無しさん@お腹いっぱい。sage2005/08/09(火) 00:04:59
1 #!/bin/ksh
2 FILEB=$0
3 CNT=0
4 function funcA
5 {
6 while read LINEB
7 do
8 echo $LINEB
9 done <$1
10 }
11 while read LINE
12 do
13 echo ------$CNT------
14 funcA $FILEB
15 CNT=`expr $CNT + 1`
16 done <$0
この例だと、同じファイルを読み込んでるけど、ちゃんと動くがなぁ。
8858802005/08/09(火) 00:34:04
>>884さん
ほ、本当ですか?
自宅にはUNIX環境がないため、確かめることはできないのですが…
なんでだろうか。。
886名無しさん@お腹いっぱい。sage2005/08/09(火) 06:20:17
起動したプロセスのプロセスIDをpidファイルに書き込みたいんですが、
どうすればいいでしょうか?
887名無しさん@お腹いっぱい。sage2005/08/09(火) 06:35:34
>>886
echo $$ > pid
念のため言っておくけど、複数個起動すれば当然"pid"というファイルの
内容は書き直されちゃうからね。
888名無しさん@お腹いっぱい。sage2005/08/09(火) 07:14:42
>>887
あざーっす!
参考になります。
ところで、やはりスクリプト内で別のスクリプトを読んでいる場合は
実プロセスIDではなくてスクリプトを実行しているプロセスのIDになってしまいますよね・・
889名無しさん@お腹いっぱい。2005/08/09(火) 07:19:22
>>888
スクリプトを実行してるプロセスのIDになりました。
apacheとかはどうやって取得しているんでしょうか・・・
890名無しさん@お腹いっぱい。sage2005/08/09(火) 07:23:10
バックグラウンドで起動した子プロセスのPIDなら「$!」
891名無しさん@お腹いっぱい。sage2005/08/09(火) 07:55:48
>>890
あざーーっす!!!!
取れました!
1 #!/bin/sh
2
3 echo $$
4 ./test.sh &
5 echo $!
という超簡単なものなら行けたんですが・・・・・
実はtomcatの自動起動スクリプトを書いているんですが、
ソース晒して見てもらってもいいでしょうか?
892名無しさん@お腹いっぱい。sage2005/08/09(火) 16:03:39
> あざーーっす!!!!
ってなんだよ?
893名無しさん@お腹いっぱい。sage2005/08/09(火) 16:13:01
オヅラさんの挨拶は「おあざーっす」
894名無しさん@お腹いっぱい。sage2005/08/09(火) 16:14:21
>>892
http://d.hatena.ne.jp/keyword/%A4%A2%A4%B6%A1%BC%A4%B9
895名無しさん@お腹いっぱい。sage2005/08/09(火) 16:15:07
「ありがとうございます」の発音の弱勢部分を崩したんじゃない?
当たってたら、なんかくれ。
896名無しさん@お腹いっぱい。sage2005/08/09(火) 16:59:30
意味不明。
日本語を書くこと。
897名無しさん@お腹いっぱい。sage2005/08/09(火) 17:40:18
いあいあとかふんぐるいとかあざーすとか。
898名無しさん@お腹いっぱい。sage2005/08/09(火) 21:41:09
うがなぐるふたぐんとか
899名無しさん@お腹いっぱい。sage2005/08/09(火) 21:43:31
いあいあはすたー
900名無しさん@お腹いっぱい。sage2005/08/10(水) 09:20:00
sedやawkの使い方知らないから、いつもPerlに頼っちゃうんだけど、
こういうのあんまりよくない?
901名無しさん@お腹いっぱい。sage2005/08/10(水) 10:18:29
どうでもいいよおもうよ
902名無しさん@お腹いっぱい。sage2005/08/10(水) 10:37:29
>>891
自己レスです。
結局
echo $(ps -ewo "%p %c %u %a" | awk "¥$2==¥"java¥" && /catalina/ && ¥$3==¥"$CATALINA_USER¥" {print ¥$1}" | head -n 1) > $CATALINA_PID
こんな強引なやり方でプロセスID取得しました
903名無しさん@お腹いっぱい。sage2005/08/10(水) 12:56:49
そんなことするより、起動スクリプトで echo $$ > pidfile したあと exec すれば?
904名無しさん@お腹いっぱい。sage2005/08/10(水) 14:54:23
fifo つくって通信するとか
905名無しさん@お腹いっぱい。sage2005/08/10(水) 19:16:47
>>902
Tomcatが8080で待ちうけている場合
/usr/sbin/lsof -t -i TCP:8080 -P
シェルスクリプトじゃないけどね。
906名無しさん@お腹いっぱい。sage2005/08/10(水) 19:48:48
>>905
ええー、(環境によっては)lsofをわざわざインスコすんの…。
そりゃあ必要なものは何でもインスコしなきゃならんがの。プロセスidさえ
わかればよいという目的下だと、ちょっとバランスの悪さを感じる。(俺は)
907名無しさん@お腹いっぱい。2005/08/10(水) 23:15:45
スミマセン、教えてください。
Kシェルで
count=`cat a.txt b.txt | grep ${検索条件} | wc -l`
というコマンドで検索条件に半角スペースを含む文字列を指定したい場合、どうしたら良いですか?
908名無しさん@お腹いっぱい。sage2005/08/10(水) 23:23:53
count=`cat a.txt b.txt | grep "${検索条件}" | wc -l`
これじゃあかんの?
9099072005/08/10(水) 23:39:59
>>908
それだと、なぜかcount=0になっちゃうんですよ。
もちろん、条件には引っ掛かる文字列もあります。
うーん。
910名無しさん@お腹いっぱい。sage2005/08/11(木) 01:43:37
>>908
ksh使ってないんで本題はわからんが、grep -c って標準的じゃないの?
スペースの話を別にすれば
count=`grep -c $検索条件 a.txt b.txt`
でよかったんじゃないのかな。
本題も、wc -lを取り払って試せば、なぜなんだかわからないかな。
911名無しさん@お腹いっぱい。sage2005/08/11(木) 02:03:08
grep -c -F でどうだろう?
912名無しさん@お腹いっぱい。sage2005/08/11(木) 11:13:46
>もちろん、条件には引っ掛かる文字列もあります。
というところからして、検索文字列の正規表現が
おかしくてマッチしないだけというオチじゃなかろうか。
grep を fgrep に変えてみるとか。
913907sage2005/08/11(木) 20:04:46
自己解決しました。
検索条件はファイルから読み込んでいるので、
半角スペースに見えているのは特殊文字かと思い、
cat -vしてみたら
行末に^Mの文字が‥
引っ掛からないわけでした。
やさしいunix板の皆様、ありがとうございました。
逝ってきます。
914名無しさん@お腹いっぱい。2005/08/14(日) 08:45:19
csh使いのアホはいつになったら死滅するんでしょうか?
915名無しさん@お腹いっぱい。sage2005/08/14(日) 10:05:52
BSDがあるかぎり何度でも甦るさ
916名無しさん@お腹いっぱい。sage2005/08/14(日) 11:04:42
*BSDに関して一つだけ嫌いな点はデフォルトのログインシェルがcshって事だな。
NetBSDにstaticな/bin/bashを突っ込む俺も阿呆だと思うけど。
だってシングルユーザモードでもログインシェルにbashを使いたいんだよもん!
917名無しさん@お腹いっぱい。sage2005/08/14(日) 17:35:45
tcshとかもいらない
918名無しさん@お腹いっぱい。sage2005/08/14(日) 18:04:12
私も要らないんだけど、入ってないと年寄りが。。。
私はbashかksh。
919名無しさん@お腹いっぱい。2005/08/14(日) 18:51:36
zsh
920名無しさん@お腹いっぱい。sage2005/08/14(日) 19:41:53
ログインシェルの話はどこかよそでやっておくれやす
921名無しさん@お腹いっぱい。sage2005/08/14(日) 22:12:16
出た自治厨
922名無しさん@お腹いっぱい。sage2005/08/14(日) 23:23:49
>>921
明らかにスレ違いだし。
923名無しさん@お腹いっぱい。sage2005/08/22(月) 17:31:43
シェルスクリプトを走らせると
????.sh: xrealloc: cannot reallocate 268435456 bytes (0 bytes allocated)
(????はファイル名)
というエラーがでます。
前同じスクリプトを動かしても何も普通に動いていたのに。。。
パーミッション、ファイルサイズ制限、ログインシェル、メモリ残量
はチェック済みです。。。
このエラーが起きる原因はなんでしょうか?
よろしくお願いします。
924923sage2005/08/22(月) 18:14:30
解決できました。すみません(;´ω`)
925名無しさん@お腹いっぱい。sage2005/08/22(月) 18:26:41
>>924
原因はなんだったんだよ!
206KB (211073Byte)
dummy_for_searchRef
|