トップページunix
1001コメント285KB

シェルスクリプト総合 その2

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2005/04/17(日) 00:17:17
シェルスクリプトの総合スレです。スクリプトのお勉強・自慢・腕試しなどにどうぞ。
まずは注意点、リンク、地鎮祭など(>>1-10くらい)をご覧ください。

□前スレや過去スレ:
シェルスクリプト総合 その1
http://pc8.2ch.net/test/read.cgi/unix/1101820646/
☆シェルスクリプトを勉強するにあたって☆
http://pc5.2ch.net/test/read.cgi/unix/989659936/
便利なシェルスクリプト見せろ
http://pc5.2ch.net/test/read.cgi/unix/996949546/
【貝】第1回シェル講座【殻】
http://fun.kz/test/read.cgi/unix/1016372780/

□関連スレ:
sed
http://pc8.2ch.net/test/read.cgi/unix/1085730992/
おまえら! shell は何を使っているんですか?
http://pc5.2ch.net/test/read.cgi/unix/1012330865/
Eshell の使い方とか設定とか【Emacs Shell、Lisp】
http://pc8.2ch.net/test/read.cgi/unix/1102921590/

□他板の関連スレ:
Macでシェルスクリプト総合 Part 1
http://pc7.2ch.net/test/read.cgi/mac/1105074933/
【Shell】どのシェル使ってる?【Script】
http://pc8.2ch.net/test/read.cgi/linux/1067330754/
0109名無しさん@お腹いっぱい。2005/05/03(火) 18:55:15
あなたのシェルは何を表示する?
(true | exit 0; exit 1); echo $?
(set -e; (false); true); echo $?
( (set -e; false; true) && exit 0; set -e; (false; true) && exit 1; exit 2); echo $?
0110名無しさん@お腹いっぱい。2005/05/03(火) 21:20:18
echo の使い方が誤っています。
0111名無しさん@お腹いっぱい。2005/05/04(水) 12:34:43
ファイルから何番目の文字、単語を取り出すってのは分かるのですけど、
行毎に取り出すことは出来ないのでしょうか?

例えば
file1の1行目を取り出して別の関数に引き渡す
引き渡したら2行目を同様に別の関数へ引き渡す。
この繰り返しで3行目、4行目・・・
いった感じを考えているんですが、
shellでは可能でしょうか?
0112名無しさん@お腹いっぱい。2005/05/04(水) 12:38:52
while read LINE; do 〜; done <file1
0113名無しさん@お腹いっぱい。2005/05/04(水) 12:46:46
>>112
ありがとうございます。
全くの初心者のものなので凄く悩んでしまいました。
もっと勉強します。
0114名無しさん@お腹いっぱい。2005/05/05(木) 00:13:39
wineがよく落ちるので、プロセスを消すコマンド

ps ax | grep wine | kill `awk '{print $1}'`
0115名無しさん@お腹いっぱい。2005/05/05(木) 00:19:17
ps ax | grep [w]ine | kill `awk '{print $1}'`
こうしようぜ。
0116名無しさん@お腹いっぱい。2005/05/05(木) 00:53:39
pkill
0117名無しさん@お腹いっぱい。2005/05/05(木) 05:26:07
ぴkill kill kill ぴ kill ki〜♪ヽ(゚∀゚)ノ
0118名無しさん@お腹いっぱい。2005/05/05(木) 20:45:03
同じ文字の連続した文字列を作りたいのだが、良い方法は?
0119名無しさん@お腹いっぱい。2005/05/05(木) 20:47:22
>>118
yes "A" | head -n 10 | tr -d "\n"

0120名無しさん@お腹いっぱい。2005/05/05(木) 20:55:21
>>119
ありがとうございます。
0121名無しさん@お腹いっぱい。2005/05/05(木) 21:09:50
俺なら
ruby -e 'puts("X"*20)'

printf "%020d" 0|tr 0 X
0122名無しさん@お腹いっぱい。2005/05/05(木) 21:25:24
調子こいてもっと聞いちゃいます。
2進数文字列の 00110 01010 のビットAND ORは?
0123名無しさん@お腹いっぱい。2005/05/05(木) 21:58:48
シェルスクリプトでビット演算したい時ってのは思い当たらないが。
0124名無しさん@お腹いっぱい。2005/05/06(金) 15:48:57
${parameter:offset:length}でoffsetに負を与えたとき末尾からのoffsetになってますか?
私のはなりません。
GNU bash, version 2.04.0(1)-release (i386-turbo-linux-gnu)
0125名無しさん@お腹いっぱい。2005/05/06(金) 16:16:23
>>124
負の値をbashで扱いたい時は $((-1)) とするか、明示的に typeset すべき。
0126名無しさん@お腹いっぱい。2005/05/06(金) 16:27:38
>>125
おお、ありがとうございます。
0127名無しさん@お腹いっぱい。2005/05/06(金) 22:21:34
VAL=<<'EOF'
aaa
bbb
EOF
とヒアドキュメントの値を変数に格納したいのですが、
どうやっていいのか分りません。あくまでリダイレクトである以上
変数への格納は無理なんでしょうか?
0128名無しさん@お腹いっぱい。2005/05/06(金) 22:33:48
いや、リダイレクトじゃないし。
0129名無しさん@お腹いっぱい。2005/05/06(金) 22:47:18
>>127
$ VAL=`cat << 'EOF'
aaa
bbb
EOF`
$ echo $VAL
aaa bbb
ってことをやりたいの?
# 移植性は未調査だけど
0130名無しさん@お腹いっぱい。2005/05/06(金) 22:50:08
>>128
そうですね、マニュアル見たら全然別物でした。
>>129
そうです、それがやりたかったです。どうもありがとうございました。
0131名無しさん@お腹いっぱい。2005/05/06(金) 23:02:08
あ、シェルの変数には改行文字を格納することはできないのかな。
スペースになってしまいますね。
0132名無しさん@お腹いっぱい。2005/05/06(金) 23:06:08
cat -e で改行文字を$に変換しておいて、後で使う時に'$ 'を
改行コードに変換するのがいいみたいです。お騒がせしました。
0133名無しさん@お腹いっぱい。2005/05/06(金) 23:53:03
set hiduke = `date '+%y%m%d'`
変数に当日の年月日を設定するのは簡単なんですが
前日を設定するにはどうしたらいいでしょうか?
0134名無しさん@お腹いっぱい。2005/05/07(土) 00:19:50
GNUのdateなら、date --date='-1 days'とか。
他の場合はどうするんだろ。
0135名無しさん@お腹いっぱい。2005/05/07(土) 01:06:19
env TZ=JST+15 date
0136sage2005/05/07(土) 01:25:07
なんか答える気にもならんくらいレベル低いな。
0137名無しさん@お腹いっぱい。2005/05/07(土) 01:26:59
なら黙ってていいよ。
0138名無しさん@お腹いっぱい。2005/05/07(土) 01:42:28
シェルスクリプトぐらいでレベルとか言い出す辺りがイタすぎ
0139名無しさん@お腹いっぱい。2005/05/07(土) 03:24:35
>>138
バカはどんなことでも自分が最高レベルと自負してくからこだわらずにいられない(藁
井の中のザコ、大海から逃げる。
01401332005/05/07(土) 09:16:40
>>133,134
ありがとうございました、と同時に「こんなんでできるんだ」とonzな感じですた
精進します
0141名無しさん@お腹いっぱい。2005/05/07(土) 10:32:18
最高レベルを自負するバカが何か言うてます。
大海から逃げたザコ、井の中で大口。
0142名無しさん@お腹いっぱい。2005/05/07(土) 10:37:21
朱に交われば
0143ヽ(´ー`)ノ ◆.ogCuANUcE 2005/05/07(土) 11:44:46
>>134
> 他の場合はどうするんだろ。
FreeBSD なら
$ date -v+1d とか。
0144名無しさん@お腹いっぱい。2005/05/07(土) 12:26:22
-r オプションで unix Epoch を設定できるものもある。
strftime(3) が %s を解すなら多分こんな感じ

$ date -r $((`date +%s`+86400))


>>132
IFSという環境変数について調べると幸せになるかもしれない。
0145名無しさん@お腹いっぱい。2005/05/07(土) 13:35:58
IPアドレスを01で表記できるようなスクリプトないっすかね( ゚ー゚)
0146名無しさん@お腹いっぱい。2005/05/07(土) 16:55:39
そんなの簡単だろ
自分で作れよ( ゚ー゚)
0147名無しさん@お腹いっぱい。2005/05/07(土) 18:05:33
どこ見てるの?( ゚ー゚)
0148名無しさん@お腹いっぱい。2005/05/08(日) 01:07:08
>>147
もうおまえしか見えない
0149名無しさん@お腹いっぱい。2005/05/08(日) 10:57:36
IFS="."
for i in $1;do
echo "ibase=10;obase=2;print $i, \".\""|bc
done
0150名無しさん@お腹いっぱい。2005/05/10(火) 07:19:36
$ cat cnv
IFS="."
for i in $1;do
echo "ibase=10;obase=2;print $i, \".\""|bc
done
$ sh cnv 127.1
1111111.1.$
0151名無しさん@お腹いっぱい。2005/05/10(火) 14:28:15
ibase=10 って常に無意味じゃないか?
ibase=A を使え。
0152名無しさん@お腹いっぱい。2005/05/10(火) 16:07:56
つーかパディングできないと。
0153名無しさん@お腹いっぱい。2005/05/11(水) 00:12:26
ここは為になるインターネッツですね
0154じゃこれでどう2005/05/11(水) 00:47:25
pad(){
if [ $i -eq 0 ];then
num=00000000
elif [ $i -lt 2 ];then
num=0000000$num
elif [ $i -lt 4 ];then
num=000000$num
elif [ $i -lt 8 ];then
num=00000$num
elif [ $i -lt 16 ];then
num=0000$num
elif [ $i -lt 32 ];then
num=000$num
elif [ $i -lt 64 ];then
num=00$num
elif [ $i -lt 128 ];then
num=0$num
fi
}
IFS="."
j=0
for i in $1;do
if [ $j -gt 0 ];then
echo -n .
fi
num=`echo "obase=2;print $i;"|bc`
pad
echo -n $num
j=`expr $j + 1`
done
echo
0155名無しさん@お腹いっぱい。2005/05/11(水) 00:52:52
初期の B シェルって関数はサポートされていなかったんだっけ?
0156名無しさん@お腹いっぱい。2005/05/11(水) 08:10:11
さあ。
Version7では使えるけど。
0157名無しさん@お腹いっぱい。2005/05/11(水) 18:41:13
さあ。
Version6では使えるけど。
0158名無しさん@お腹いっぱい。2005/05/11(水) 20:53:29
すいません、ちょっといいロジックが思い浮かばないので
ご相談です;y=ー(゚д゚)・∵. ターン

[server_1.txt]
PC等,PCサロン,PCについて誰かが質問に答えるスレ
PC等,UNIX,全文エンジンEstraier
PC等,CG,モデラー silo

[server_2.txt]
PC等,モバイル,ID砲丸投げinモバイル
PC等,UNIX,全文エンジンEstraier
PC等,CG,ローポリスレ△3

ってあるテキストファイルがあるとして、

$ merge.sh server_1.txt server_2.txt
PC等,PCサロン,PCについて誰かが質問に答えるスレ
PC等,モバイル,ID砲丸投げinモバイル
PC等,UNIX,全文エンジンEstraier
PC等,CG,モデラー silo

とマージされるスクリプトを作りたいんです。要件としては
(1) #1,#2がキーでその後ろは自由項目
(3) #1,#2が同じ場合はserver_1.txtを採用

なんか簡単にsortとかでできそうな予感してたんですけど、
だめぽ・・・なんです。

どなたかいいスクリプトを・・・もしくは、スレ違いの
場合は誘導お願いします。

0159名無しさん@お腹いっぱい。2005/05/11(水) 21:10:12
>158
すんません、#1, #2は$1, $2ってことです。
(CSVファイルの1列目、2列目ってことです)
0160名無しさん@お腹いっぱい。2005/05/11(水) 21:32:46
>>158
sortしてuniqじゃね?
uniqってカラムでなんか指定できたことね?
0161名無しさん@お腹いっぱい。2005/05/11(水) 21:45:52
awk で多次元連想配列使うってのは?

Perl/Python 使った方が速そうだが
0162名無しさん@お腹いっぱい。2005/05/11(水) 22:04:12
ちうことで awk。ファイル2つじゃなくて3つ以上でも動く。
出力される順番は不定。

#!/usr/bin/awk -f
BEGIN{ FS="," }
{ if(!($1 SUBSEP $2 in a)) a[$1,$2] = $0 }
END{ for(i in a) print a[i] }
0163名無しさん@お腹いっぱい。2005/05/13(金) 00:50:37
現在bourne shで以下のロジックを組もうとしているのですが、
思うように動作しないため、質問させていただきます。

==============================================
1. 変数Aを用意する。
  変数Bに時刻「05:30」と値が格納されている。
  変数Cを用意する。

2. AとBを比較します。
  (1)Aの方がBよりも時刻が前の場合、Cに"OK"と格納する
  (2)Aの方がBよりも時刻が後の場合、Cに"NG"と格納する
==============================================

このロジックでキモなのは、時刻の比較です。
最初、比較条件を [$A < $B] としておりました。
辞書式のやり方をネットで調べたらありましたので。
ですが、こうすると、変数Bが名前のファイルが出来てしまい、
比較しているのかどうかも怪しいのです。

すみませんが、お知恵を貸してはいただけないでしょうか。
宜しくお願い致します。
0164名無しさん@お腹いっぱい。2005/05/13(金) 00:55:44
>>163
[ $A \< $B ]
0165名無しさん@お腹いっぱい。2005/05/13(金) 08:53:06
時刻を四桁の数字にして比較したらダメなの?
$B=`date +%H%M`
みたいな感じで。
そしたら普通に数値比較の方法でいけるよ
0166名無しさん@お腹いっぱい。2005/05/14(土) 00:14:57
>>163
time_tの値を返すコマンドを作れ。
0167名無しさん@お腹いっぱい。2005/05/14(土) 02:12:30
>> 163
こんなの書いてみた

# 05:30 -> 530 数値に書き換える
function timeToInt() {
 if [ x"$1" = x"00:00" ] ; then
  echo "0"
  return
 fi
 echo $1 | sed s/:// | sed s/^0*//
}

if [ `timeToInt $A` -lt `timeToInt $B` ] ; then
 C="OK"
else
 C="NG"
fi
0168名無しさん@お腹いっぱい。2005/05/14(土) 08:34:04
>>163
俺も
a=09:39; b=05:30; if [ $((10#${a/:/})) -lt $((10#${b/:/})) ]; then c=OK; else c=NG; fi; echo $c
0169名無しさん@お腹いっぱい。2005/05/14(土) 09:07:10
>>165
の言う通り。
”:”だけ削除するロジックを入れれば、変数文字列の先頭に0が残っていても、数字として比較できる。
0170名無しさん@お腹いっぱい。2005/05/14(土) 09:17:46
>>169
0が残っていると8進数になるんじゃない。
0171名無しさん@お腹いっぱい。2005/05/14(土) 11:49:13
>158(>159)です。

>160
>161
>162

ありがとうつД`)・゚・。・゚゚・*:.。..。.:*・゚
でけました。

SUBSEPって言うawk変数の存在さえ知らなかったので
そこから調べました。ちなみに、キー項目はユーザの
入力項目なので初期値の "@" から変更しようかなとか
思ってます。
0172名無しさん@お腹いっぱい。2005/05/14(土) 13:51:47
いや、今は SUBSEP は知らんでいいと思う。
昔の GNU awk は多次元配列の扱いがタコだったので
$1 SUBSEP $2 in a と書かないと動かなかったけど、
最近のは gawk に限らず ($1, $2) in a という書き方ができるので。
0173名無しさん@お腹いっぱい。2005/05/14(土) 13:57:54
あと、SUBSEP のデフォルトは @ じゃないので。
0174名無しさん@お腹いっぱい。2005/05/14(土) 14:03:29
なんかねぼけてるなー。
if((i,j) in a) はできるけど、
for((i,j) in a) はできないから SUBSEP を使うんだな。
0175名無しさん@お腹いっぱい。2005/05/14(土) 14:55:46
2,球技,20050514_120050
1,球技,20050514_120050
1,文化,20050514_160000
2,生活,20050514_170000

というテキストを

2,生活,20050514_170000
1,文化,20050514_160000
1,球技,20050514_120050
2,球技,20050514_120050

のようにしたいです。

ソートの優先条件は
1.日付の降順 ( sort -t , -k 3 -r)
2.先頭の番号の昇順 ( sort -t , -k 1 )
を一緒に実行したいってことです(降順と昇順を同時に指定)。

できますか??
0176名無しさん@お腹いっぱい。2005/05/14(土) 15:03:29
宿題を装った釣りも禁止
01771632005/05/14(土) 21:59:46
>>164>>165>>166>>167>>168>>169>>170

返事が遅れてしまい、申し訳ありませんでした。
色々考えて下さいまして、ありがとうございました。

あの後、色々当方でも考えましたが、
結局辞書式比較を諦めて、数値比較を行うことにしました。
(その直後に、秒単位まで見ることになってorz)

最初は、時、分、秒とパーツに分け、それぞれで比較を
行ってましたが、すごく馬鹿らしくなってきたので、
>>167氏のようにsedコマンドで":”を外し、それを
比較していく形にしたら、あっさりと出来てしまいました。
頭の"0"を気にしなくても良かったっぽいです。
肝心なのは、その数値の大小を見る事でしたから。

(余談ですが、このロジックが解決した後、色々悩んでた
 問題が次々解決していく状態になりましたw
 例えるとチューリップ開きっ放しみたいな感じ。
 プログラム組んでる時って、こういう事たまにありますよねw)
0178名無しさん@お腹いっぱい。2005/05/18(水) 08:08:13
>>122
AND:
echo 00110 01010 |\
sed -e "s/^/%/; :ll; s/%\(.\)\(.*\) \(.\)\(.*\)/#\1\3%\2 \4/; tll; s/%//; s/#11/1/g; s/#[01]\{2\}/0/g;"

OR:
echo 00110 01010 |\
sed -e "s/^/%/; :ll; s/%\(.\)\(.*\) \(.\)\(.*\)/#\1\3%\2 \4/; tll; s/%//; s/#00/0/g; s/#[01]\{2\}/1/g;"
0179名無しさん@お腹いっぱい。2005/05/18(水) 09:49:41
うひょー
0180名無しさん@お腹いっぱい。2005/05/18(水) 16:47:19
質問があります。
/work/foo/bar/test
のtestだけを取得したいのですが、どのようにすればいいのでしょうか。
情けないがお手上げです・・・
簡単な質問だと思いますがよろしくお願いいたします。
0181名無しさん@お腹いっぱい。2005/05/18(水) 16:50:16
man basename

って basename 知らなくてもどうにでもなるでしょ。
0182名無しさん@お腹いっぱい。2005/05/18(水) 16:52:27
変数なら${foo##*/}とか。
0183名無しさん@お腹いっぱい。2005/05/18(水) 16:52:47
あ、basenameで拾えました。
すいません。。。

ってもうカキコある・・・

ちなみにexprでやろうとがんばってたんですが
exprやって取得するにはどうすればよいのでしょうか?
0184名無しさん@お腹いっぱい。2005/05/18(水) 17:25:56
Solaris で man expr すると、そのまま答が載ってたりなんかする。


Example 2:

basename(1) をエミュレートします。basename(1) は、$a という
パス名の最後の要素を返します。$a が /usr/abc/file か、ただの
file のいずれかと等価の場合に、この例は、file を返します。引
数 としての単独の / に注意してください。expr は / を除数演算
子とみなします (後述の「注意事項」を参照)。

example$ expr $a : '.*/\(.*\)' \| $a
01851832005/05/18(水) 18:09:19
おぉ
ありがとうございます!
0186名無しさん@お腹いっぱい。2005/05/19(木) 21:10:25
環境:cygwin
!#/bin/sh
rsync.exe -arvz -e ssh /cygdrive/c/Documents\ and\ Settings/hoge/Local\ Settings/Application\ Data/Microsoft/Outlook ugo@mogo:/cygdrive/c/backup/

というviで作成したバックアップのスクリプトを実行させたのですが、rsyncから、t/Outlook: not foundというエラーが返ってきてしまいます。

viで作成したとき、途中で改行されてしまっているのが原因らしいのですが、回避する方法はありませんか?
'や"などを付けて実行しても同じような結果です。
初歩的な質問で申し訳ありません。


0187名無しさん@お腹いっぱい。2005/05/19(木) 21:12:50
\
0188名無しさん@お腹いっぱい。2005/05/19(木) 21:41:10
>>187
> \

やはり、viが画面の端っこまで文字が来ると勝手に折り返して、改行コードを入れてしまうのが問題のようです。
\
を使うといいということですか?

回答ありがとう御座います。

0189名無しさん@お腹いっぱい。2005/05/19(木) 21:51:37
入れねぇだろw
0190名無しさん@お腹いっぱい。2005/05/19(木) 21:52:24
>>189
> 入れねぇだろw

やっぱりそうでしたか。何となく気づいてました。
viの設定で何とかしなければいけないようですね。
0191名無しさん@お腹いっぱい。2005/05/19(木) 23:56:36
>Microsoft/Outlook
ここか?
0192名無しさん@お腹いっぱい。2005/05/20(金) 10:15:02
>>191
> >Microsoft/Outlook
> ここか?

vimだと、t/Outlookで折り返されてしまうのです。
その状態で保存すると、Microsof t/Outlookという感じでパスが区切られてしますのです。
別のエディタでやれば問題なのです。
viの設定でしょうね。
ところで、スクリプトを書くときはどんなエディタを使っていますか?
0193名無しさん@お腹いっぱい。2005/05/20(金) 19:19:45
>>192
KWrite
0194名無しさん@お腹いっぱい。2005/05/20(金) 19:42:10
>>192
~/.vimrc あたりで breakat とか設定しとるか?
いずれにせよ無駄レス繰り返すよりも使ってる .vimrc 貼ったほうがなんぼか
確実なレスが付くし,解決も早いはず.
01951942005/05/20(金) 19:44:37
ってか,ここってシェルスクリプトスレじゃんかよ>>192
vimスレ逝け
0196名無しさん@お腹いっぱい。2005/05/21(土) 00:34:32
"Documents\ and\ Settings"とか、"Local\ Settings/Application\ Data"
とか邪悪なディレクトリ名を直接スクリプトに書くなんて。。。
OutLookの設定で、データの保存ディレクトリをもっとマシな場所に変えれば済むんじゃないの?
0197名無しさん@お腹いっぱい。2005/05/21(土) 01:31:52
windows 使ってる限り Program Files とか Documents and Settings は
避けて通れないよ。
0198名無しさん@お腹いっぱい。2005/05/21(土) 02:20:52
>>197
素人発見
0199名無しさん@お腹いっぱい。2005/05/21(土) 03:17:52
マイPCしか触らないんならともかく
職業的にWindowsに触れる機会があるんなら
郷に入っては郷に従うべきだろう
02001862005/05/21(土) 08:59:30
無駄なレスを食ってします。申し訳ありません。
答えて方々ありがとう御座います。
オライリー「入門vi」を読んで、勉強することにします。

とりあえず、xyzzyで編集してしのいでます。
"Documents\ and\ Settings"とか、"Local\ Settings/Application\ Data"
はイヤなんですけど、そこらへんは、どういうわけかあんまり変えたくないのですよ。

0201名無しさん@お腹いっぱい。2005/05/21(土) 10:00:53
>200
いっそのこと Docume~1 とかロングファイルネームを諦めちゃえば?
0202名無しさん@お腹いっぱい。2005/05/22(日) 17:47:28
sshを使って、リモートでマシンの電源を切るスクリプトを作ったのですが、
sshでログインしたところで止まってしまいます。
仕方がないので、ログアウトするためにexitを実行すると、
shutdownコマンドが実行されて、ローカルのマシンの電源が切れてしますのです。

シェルスクリプトでは、リモートのPCを操作して、自動的にログアウトするようなことは、
無理なのでしょうか?

コマンド
#!/sh/bin
ssh hoge@ugo
shutdown -s -t 0
exit


0203名無しさん@お腹いっぱい。2005/05/22(日) 18:07:24
ネタなのかマジなのか。。。
1行目はなんじゃ?
ちなみに、”shutdown -s -t 0”
これってなんていうOSのコマンド?
0204名無しさん@お腹いっぱい。2005/05/22(日) 18:16:39
>>202
man ssh
0205名無しさん@お腹いっぱい。2005/05/22(日) 18:21:29
>>202
ssh hoge@ugo shutdown -s -t 0
0206名無しさん@お腹いっぱい。2005/05/22(日) 18:21:43
ssh hoge@ugo shutdown -s -t 0
0207名無しさん@お腹いっぱい。2005/05/22(日) 19:45:53
>>206
> ssh hoge@ugo shutdown -s -t 0

助かりました。これをスクリプトに保存しておきます。

#!/bin/sh
ssh hoge@ugo shutdown -s -t 0

186の方のように、Windowsを使っています。
0208名無しさん@お腹いっぱい。2005/05/23(月) 16:10:05
>>196
時代遅れ。

KDEでthunderbird使うと
~/.thunderbird/abcdefgh.default/Mail/Local\ Folders/Unsent\ Messages/
だったり、
~/.kde/share/apps/RecentDocuments/Mozilla\ Thunderbird.desktop
だったりするぞ。
0209名無しさん@お腹いっぱい。2005/05/23(月) 21:46:11
他人の書いたシェルを読んでたら
何してるかわからない箇所が出てきて困ってます(>_<)
これってどう解釈したら良いの?
ファイル名の何かをピリオドと比較してるようだけど・・・
詳しくは何してるのかなぁ

#!/bin/sh
filename=$1
if[ "${filename%${filename#?}}"="." ] ; then
■ このスレッドは過去ログ倉庫に格納されています