1 名前:デフォルトの名無しさん [2005/04/04(月) 03:43:03 ] シェルスクリプトに関する質問・回答や議論等を行う相談室スレッド。
684 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 01:02:09 ] main.sh ------------ #!/bin/bash bash sub.sh bash last.sh ------------ で、いいのではないかと思うのは気のせいか。
685 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 01:19:02 ] >>684 たぶん>>678 も同じ疑問を持って書いたんだと思う。
686 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 09:31:43 ] >>683 sleep というコマンドを知らなかったとき、 この情報に辿り着くために必要な検索単語ってなんだ?
687 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 13:52:26 ] シェル 秒 待つ www.google.co.jp/search?q=%E3%82%B7%E3%82%A7%E3%83%AB+%E7%A7%92+%E5%BE%85%E3%81%A4
688 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 00:00:31 ] シェルスクリプトの本くらい立ち読みでいいから流し読みしろよ。 流し読みで覚えられないなら買え。 それやった上でsleepなんぞ知らないって言うなら諦めろ。
689 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 08:04:10 ] usleep
690 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 12:16:49 ] usleepなんて無いだろw
691 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 17:44:38 ] 何怒ってんのかね 気に入らなけりゃスルーすればいいのに
692 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 19:20:58 ] >>691 オマエモナーw
693 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 19:52:12 ] usleepのuがμのつもりだったと理解したときASCIIの世界に生きる人に同情した。
694 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 20:17:49 ] おいおい そこまで意地張ったのになんでnanosleepなんだよ!! かなり天邪鬼だ
695 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 22:04:14 ] >>693 マイクロは uC という表記方法もあるよ
696 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 23:15:22 ] >>695 結局それも「字形が似てるから代用」には違いないんでしょ?
697 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 23:46:50 ] μなんてDBCSローカルな文字つかって喜んでる椰子キモイ
698 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 23:50:13 ] μ(greek small letter mu)ならいいのか
699 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 10:48:43 ] 技術系だと割と当たり前に使うけどなぁ。usecとかum、uFとか。或いは組み合わせでug/lとかも。
700 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 14:35:50 ] それだってu(ユー)にマイクロの意味があるわけじゃないだろ? あくまでμの代用であることには違いないと思うが。
701 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 17:57:36 ] 不毛だ
702 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 22:38:48 ] 習慣
703 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 00:39:35 ] bashスクリプト中で cmd echo "foo-san" ってやると echo "foo-san" foo-san って感じに、実行されるコマンドの内容が先に表示される関数って、定番なのありますか? cmd() を echo $*;eval $* にしてみたけど、" とか ' とかの処理が旨くいかない。 DOS の echo on モードみたいのでもいいかも。
704 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 00:47:46 ] >>703 set -x
705 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 00:49:12 ] echo "." |xargs -t
706 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 09:52:26 ] >704 おーなるほど、そういうコマンドがあるのかー。勉強になりました。 >705 ありがとうございます。 でも echo つかうと、ダブルクォーテーションが表示されないのが、ちょっとかな、と。
707 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 11:10:16 ] >>706 set -v
708 名前:デフォルトの名無しさん [2007/10/24(水) 21:03:29 ] 親フォルダ内でシェルスクリプトを開いて、 Folder1に移動し、ABCを実行する。 1時間おきにプロセスABCがあるかチェックする。 終了したら、親フォルダに移動しFolder2でも同じことをする というスクリプトを書いたんですけど、 whileのdoで文法エラーが出て困ってます。 #!/bin/sh for i in 1 2 do cd Folder$i nohup ./ABC & while[$isAlive -eq 1] do sleep 1h isAlive='ps -ef | grep " ABC " |\ grep -v grep | wc - |' done cd .. done
709 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 21:18:40 ] while[$isAlive -eq 1] while文の文法の一部ではない。 [というコマンドの最後に ] いう引数があるコマンド行(リスト)。 よって空白が必須。
710 名前:708 [2007/10/24(水) 21:31:41 ] >>709 whileのところはできました。 ありがとうございます。 今度は、forのdoがおかしいって出ました。 forのなかでwhile制御することってできないんでしょうか?
711 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 21:41:40 ] エラーメッセージ書いてー。 '(単一引用符)は`(逆向き単一引用符)の間違いだよな? wc - |(マイナス、スペース、縦棒) は wc -l(マイナス、エル) の間違い?
712 名前:708 [2007/10/24(水) 22:21:55 ] 10行目、doが、syntax error です。って表示されました。 逆向き単一引用符で、wc -lエルです。 失礼しました。
713 名前:708 [2007/10/24(水) 22:24:03 ] 連投すいません。 エラーは、forじゃなかったです。 whileのところでした。
714 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 23:01:32 ] もっかいきっちりコピペしろ
715 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 00:23:06 ] 俺が同じマシン使ってたらABCという名前で永久に終了しないプログラムを動かしてやる。
716 名前:708 [2007/10/25(木) 03:03:38 ] >>714 ごめんなさい。もいっかい書き直します。 これの、whileのdoで文法エラーがでます。 >>715 永久に終了しない・・・作ってほしい #!/bin/sh for i in 1 2 do cd Folder$i nohup ./ppln & while[ $isAlive -eq 1 ] do sleep 1h isAlive=`ps -ef | grep " ppln " | grep -v grep | wc -l` done cd .. done
717 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 04:58:38 ] >>716 while と [ の間にスペースが足りないのはコピペミスだよね? 最初の while のチェックの時に $isAlive が未定義。 で、 [ コマンドが引数が足りないってエラーを吐く。 だから [ コマンドに与える変数はクォートで括っておくが基本。 while [ "$isAlive" -eq 1 ] あと pgrep があれば while の処理はもっと簡単に書けるよ。
718 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 08:21:46 ] ただ、>>715 がいうように、 既に誰かが同じ名前の無関係なプロセスを走らせていたらどうする? 「永久に」っていう細かいところでただの煽りとか思わずに、本質読み取らなきゃ。
719 名前:708 [2007/10/25(木) 16:02:00 ] >>717 ご指摘通りに作り直したら動きました。修正したものを張っときます。 >>718 おっしゃるとおりです。全然見えてませんでした。 実際に、スクリプトの名前を”ABC-sc.sh”としたら、 プロセスの出力が”2”とされてしまい、うまくいきませんでした。 もうちょっと改良について考えたいと思います。 プログラミングとかLinuxは初心者で、まだまだ勉強しないといけないって感じてます。 #!/bin/sh for i in 1 2 do cd Folder$i nohup ./ABC & sleep 20 isAlive=`ps -ef | grep "ABC" | grep -v grep | wc -l` echo "$isAlive" while [ "$isAlive" -eq 1 ] do sleep 1h isAlive=`ps -ef | grep "ABC" | grep -v grep | wc -l` echo "$isAlive" done cd .. done
720 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 01:12:26 ] >>719 $! という変数は知ってる? nohup ./ABC & echo "$!" # ← ABC の PID が表示される これなら >>718 の罠にはかからないよ
721 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 09:35:42 ] バックグラウンドで動かす意味なくね?
722 名前:デフォルトの名無しさん [2007/10/28(日) 21:40:09 ] 引数に対応した干支を表示するシェルスクリプトを Bshellで作成したいのですが、作成方法を教えて頂けないでしょうか?
723 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 22:31:24 ] eto=`expr ¥( $1 + 8 ¥) % 12` 年は西暦。子年を0にしたかったので8を加えてある。
724 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 12:33:07 ] >>719 ps -efではなく、psのフォーマット指定を使えば混乱が減らせると思う。 # >720も手だけど。 ps -efだと、例えば引き数が"ABC"なプロセスでも混乱してしまうよ。
725 名前:デフォルトの名無しさん mailto:sage [2007/10/31(水) 01:21:20 ] >>716 初心者のくせに我輩を煽るとはいい度胸してるな。おととい来やがれ。 度胸に免じて、厨房どもに一つテクを授けてやろう。 kill -0で生存確認しろ。
726 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 08:34:30 ] 質問お願いします! 適当なファイルを作ってその中には数字を記述しておいて、キーボードからそのファイルを読み込んで、その記述してある数字に+2を行った結果を画面上に出力するというシェルを作りたいのですが、どのようにすればよいか教えていただけませんでしょうか? readとループ文を使って作りたいんですが自分で調べてもあんまりわかったんでみなさんのお力をお貸しいただけないでしょうか?
727 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 10:07:29 ] #!/bin/sh read num while `test $num` do echo `expr $num + 2` read num done ちょっと違うか。
728 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 11:34:29 ] awk使っていいなら凋落。 awk '{print $1 + 2;}' 適当なファイル
729 名前:c mailto:sage [2007/12/04(火) 13:14:06 ] % cat x 100 % cat add2 #!/bin/sh num=`cat $1` expr $num + 2 % ./add2 x 102
730 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 13:18:06 ] ん? こっちか? % cat x 100 200 500 % cat add2 #!/bin/sh exec < "$1" while read num do expr $num + 2 done % ./add2 x 102 202 502
731 名前:>>726 mailto:sage [2007/12/04(火) 14:04:57 ] >>727 >>728 >>729 >>730 回答サンクスです! いろいろな考え方ができるのですね。勉強になりました。 ぜんぶやってみたいと思います。助かりました!ありがとうございます。
732 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 00:36:45 ] シェルってゆうな。クズ。
733 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 20:46:08 ] >>732 やっぱりフルネームで言わなきゃ駄目なのか?
734 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 21:02:25 ] まあそれ抜きにしてもアレだろ
735 名前:login:Penguin [2007/12/07(金) 18:11:42 ] 午前2時まで、pingを10秒ごとに打ちたいのですが きれいな書き方おしえてください
736 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 18:29:03 ] # crontab */10 0-1 * * * ping toTarget
737 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 18:32:54 ] いけね、10分ごとにしちまったw おまけにpingが無期限実行だぜ。 つーことで訂正。 # crontab 0 0 * * * ping -i 10 -c 720 toTarget
738 名前:735 [2007/12/07(金) 18:35:34 ] >>737 さま ありがとう!
739 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 10:55:42 ] 既にシェルスクリプトじゃなくてUNIXよろず相談室だな(w
740 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 18:52:32 ] Linuxのpasswdみたいにコマンドを打った後に出てくる質問に答えていく場合は #!/bin/sh passwd aaaa pass pass とかじゃ無理みたいなのですが、どうすればいいのでしょうか?
741 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:04:22 ] ホントによろず相談室だなぁ…… >>740 リダイレクトでもしてみたら? passwdコマンドがリダイレクトを受け付けるとも思えないけど知っておいて損はないし。
742 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:19:44 ] >>740 対話的処理をしたいときは expect
743 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:11:49 ] >>740 Tclに嫌気が差したら Expect.pm (Perl)
744 名前:740 mailto:sage [2007/12/23(日) 00:02:58 ] >>742 で以下のようにしてみたのですが #!/bin/sh passwd testid expect \"*:\" send "test\n" expect \"*:\" send "test\n" cronのメールで useradd: user testid exists New UNIX password: New UNIX password: New UNIX password: passwd: Authentication information cannot be recovered Changing password for user testid. aaaa: line 6: expect: command not found aaaa: line 7: send: command not found aaaa: line 8: expect: command not found aaaa: line 9: send: command not found といわれました。 expectが見つからない・・?何か入れる必要あるんでしょうか?
745 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 00:32:51 ] cronから起動されるときのPATHがどうなるかmanで勉強する。 which expectしてみる。 $PATHの値を見てみる。 locate expectしてみる。 パッケージ管理システムを使ってるならそれを使ってインストールされてるか見てみる。(rpm系Linuxのrpm -q expectみたく) /usr/localや/optなどのそれっぽいディレクトリの下のどこかにあるのかもしれない。 あと、expectの使い方って expect -c " ... spawn passwd #パスワードコマンド起動 expect ログイン要求を待つ send ログイン名 云々 " じゃなかったっけ?
746 名前:740 mailto:sage [2007/12/23(日) 14:11:46 ] >>745 ズバリですね。yum install expectとしたらインストールされていないらしく入れますか?と。 expect -c " spawn passwd id expect \":\" ; send 〜でできました。 大変参考になりました、ありがとうございます。
747 名前:デフォルトの名無しさん [2007/12/29(土) 11:20:36 ] 初心者的な質問で,申し訳ないです。 ヒアドキュメントで変数に代入する方法がわからなくて。 list=<<EOT A B C EOT echo $list としても$listには何も代入されなくって。
748 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 11:33:39 ] ヒアドキュメントは、PerlやらRubyやらでは変数への代入に使うけど、 シェルスクリプトでは、コマンドの標準入力をすげ替えるモノじゃないかな。
749 名前:747 mailto:sage [2007/12/29(土) 12:23:18 ] >>748 なるほど,標準入力のかわりだったのですか。 ということで read list <<EOT #--> A としたらという結果。あともう一歩というところまできました。
750 名前:747 mailto:sage [2007/12/29(土) 12:38:15 ] とりあえず while read line; do list="$list $line";done <<EOS A B C EOS echo $list で ん〜,改行がなくなってしまう...
751 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 13:21:26 ] そりゃぁ、echoすれば改行は消えるね。
752 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 21:26:09 ] >>750 ダブルクォートをつけてみな。 echo "$list" 見た目がいまいちかもしれんが、こうやって代入する事もできるよ list='A B C'
753 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 18:50:43 ] zshとbashじゃそこの挙動違うんだな
754 名前:デフォルトの名無しさん [2008/01/02(水) 15:16:56 ] シェル初心者ですが pingして反応が無かったらまたAにGOTOして というのを書いているつもりなんですが これをcronで実行させると A:: not found となります。 GOTOさせる場合の正しい書き方を教えてください #!/bin/sh PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin HOST=192.168.1.6 TIMEOUT=5 A:; /sbin/ping -t $TIMEOUT -o $HOST if [ $? != 0 ]; then goto A; else /bin/echo "$HOST is Alive!" fi
755 名前:デフォルトの名無しさん [2008/01/02(水) 16:35:27 ] あっ、gotoでなくてもいいのか こうすればいいてことですね while [ $? != 0 ] do /sbin/ping -t $TIMEOUT -o $HOST done
756 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 05:20:05 ] >>755 すでに解決しているようだが、こんな書き方もできる。 until /sbin/ping -t $TIMEOUT -o $HOST do : done
757 名前:デフォルトの名無しさん [2008/02/09(土) 17:00:30 ] 自分に渡されたコマンドオプションをそのままほかのコマンドに渡したいのですが うまくいきません runruby.shに cmd=ruby ${cmd}" $@" と書いて ./runruby -e 'puts "Hello"'を実行すると ruby: No such file or directory -- -e (LoadError)と言われてしまいます
758 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:11:50 ] >runruby.shに : : >./runruby -e 'puts "Hello"'を実行すると runruby.shはどこに行った? それと、そのrunruby.shによるとrubyに" -e"を渡すことになるぞ。
759 名前:757 mailto:sage [2008/02/09(土) 17:18:29 ] >>758 申し訳ございません 間違いました ./runruby.sh -e 'puts "Hello"'でした runruby.shの内容を cmd=ruby ${cmd} ${@} にしてみたらエラーメッセージはでなくなったのですがHelloも表示されず終了しましたorz
760 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:22:54 ] なんで"$@"にしないの?
761 名前:757 mailto:sage [2008/02/09(土) 17:31:24 ] >>760 できました!! ありがとうございます
762 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:33:10 ] つまり、rubyコマンドはコマンドライン引き数の先頭が空白だとファイル名と看做すってことか。
763 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:39:39 ] bashでしか試してないけど、、、 ${cmd}" $@" -> "ruby\ -e" "puts \"Hello\"" $cmd "$@" -> "ruby" "-e" "puts \"Hello\"" "${cmd} $@" -> "ruby -e" "puts \"Hello\"" "${cmd}" "$@" -> "ruby" "-e" "puts \"Hello\"" "$@" -> "$1" "$2" ... "str$@" -> "str$1" "$2" ... "str $@" -> "str $1" "$2" ... って感じで展開されているのかな?
764 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:42:01 ] 3つ目、 x "${cmd} $@" -> "ruby -e" "puts \"Hello\"" o "${cmd} $@" -> "ruby\ -e" "puts \"Hello\""
765 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:59:05 ] よく見たら、 "$@" じゃなくて " $@" なのかよ。
766 名前:デフォルトの名無しさん [2008/02/11(月) 18:09:03 ] configureでif test x"$enable_shared" = xyes; thenっていうふうに xを付け加えて比較してるのをよく見るのですがxはなんのためですか?
767 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:12:40 ] 空文字列のときも大丈夫にするためかな xつけないとtestで構文エラー出ちゃうでしょ?
768 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:13:32 ] $enable_sharedがマイナスで始まってる場合を考慮……はconfigureでは不要か。
769 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:38:48 ] 変数をクォートしないとこうなるけど、この場合は関係ないか $ x='-n 3 -o 1' $ if test $x = 1; then echo ok; fi ok
770 名前:デフォルトの名無しさん [2008/02/15(金) 18:24:02 ] echo `df` だと1行で出力されて echo "`df`" だと複数行出力になるのはなんででしょうか?
771 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 19:00:26 ] >>770 echo "foo bar" のようにダブルクォートの中では、改行が区切り文字にならなくなるから
772 名前:デフォルトの名無しさん [2008/02/15(金) 19:44:39 ] >>771 ああ、そうか。改行って""の中だと改行として有効なのか。 ふむ、""がないと、単なる区切りになっちゃうわけですね。
773 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 22:27:13 ] >>767-768 configure普通autoconfで自動生成するから、 ハイフンで始まっていたり=だったりするのを考慮したコードが 不必要な部分でも出てくるだけ。
774 名前:デフォルトの名無しさん [2008/02/16(土) 02:22:13 ] 自分が所持している映画のDVDのリストを整理しているのですが、 CSV形式で、例えば次のようになっている時に、 "jean-luc godard","1967 week end" "jean-luc godard","1965 pierrot le fou" "jean-luc godard","1960 a bout de souffle" を "Jean-Luc Godard","1967","Week End" "Jean-Luc Godard","1965","Pierrot Le Fou" "Jean-Luc Godard","1960","A Bout De Souffle" と一括変換したいのですが、どのようにすればいいのでしょうか? やりたいことは、 1). まず、2番目のフィールドが"制作年 タイトル"となっているのを"制作年","タイトル"に分けたいのと、 2). 次に、総ての単語の頭文字を大文字にしたい、 ということなんです。 1). は sed で何とかなりそうなのですが、2). が分かりません。 どなたかお助け下さい。 あるいは他に正しいスレがあるようでしたら誘導をお願いします。
775 名前:デフォルトの名無しさん [2008/02/16(土) 02:24:27 ] すみません。やはり 1). もよく分かりません。 どなたか助けてください。お願いします。
776 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 02:34:45 ] 手抜きですが perl -pe 's/\b(\w+)/\u$1/g; s/"(\d+)\s*/"$1","/'
777 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 03:11:07 ] ただシェルじゃないんだよなそれだと。。。 俺もPerlとかでしか思いつかないけど
778 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 03:14:45 ] >>774 シェルスクリプトだけでは無理でも(1)も(2)もawkでできますね。 取り敢えず(1)はこんな感じ。 awk -F, '{$2 = substr($2, 1, 5) "\",\"" substr($2, 6);} {print;}'
779 名前:デフォルトの名無しさん [2008/02/18(月) 01:45:59 ] [root@hoge admin]# ls -l | grep forward -rwsr-xr-x 1 root admin 300 2月 18 01:16 setforward.sh [root@ibm admin]# cat setforward.sh #!/bin/bash # set variable PATH=/home/ USER=$1 ADDRESS=$2 cd $PATH$1 cat << EOF > .forward "|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #$1" EOF cat << EOF > .procmailrc :0 c ! $ADDRESS EOF [root@hoge admin]# ./setforward.sh admin test@example.jp ./setforward.sh: line 14: cat: command not found ./setforward.sh: line 20: cat: command not found CentOS5.0です。 一般ユーザに、他のユーザの転送設定をさせたいと考えています。 こんな感じでcatコマンドが無いと言われてしまいます。 そのくせ、空っぽの.forwardと.procmailrcファイルが作成されます。 なぜcommand not foundになってしまうんでしょうか?
780 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 01:51:29 ] PATHは使っちゃだめよ
781 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 02:05:32 ] 環境変数PATHはコマンド(実行ファイル)を検索するためのものだから、 違う変数名にしないと駄目よ。
782 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 02:13:29 ] >>779 大文字の変数は環境変数で使われる事が多いから 小文字を使った方がいいよ。
783 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 08:42:13 ] >>779 自分で勝手にサーチパスを潰しておいて、見つけてくれないと文句を言うとはなんてぇゆとりだ。
784 名前:779 [2008/02/18(月) 13:10:40 ] >780-783 ありがとうございます。 m(_ _)m 続けてもう一つ・・・ -rwsr-xr-x 1 root root 300 2月 18 01:16 setforward.sh このシェルを動かして、一般ユーザで 他の一般ユーザの転送設定をしようとすると、 「cd」のところで"/home/user: 許可がありません"と 弾かれてしまいます。 SUIDをつけてあるのに、何がいけないんでしょうか? またまたよろしくお願いします。