- 1 名前:シェルスクリプトライター mailto:sage [2011/12/10(土) 20:06:40.38 ]
- シェルスクリプトの総合スレです。
スクリプトのお勉強・自慢・腕試しなどにどうぞ。 □お約束 ・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。 Linuxユーザは/bin/shの正体がbashなので特に注意。 FreeBSDユーザは/bin/shの正体がashなので注意。 v7 shに一番近くて、現役のshは、OpenSolaris由来のheirloom sh。 src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/sh/ heirloom.sourceforge.net/sh.html ・csh/tcshのシェルスクリプトは推奨されません。 (理由は「csh-whynot」でググれ) ・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。 manや参考リンクを見ましょう。 aproposないしはman -kでそれらしい単語による簡単な検索もできます。 ・シェルスクリプトのことをシェルってゆーな ・シェルで使えるワイルドカード等は正規表現ではありません。 正規表現の話題はスレ違い(正規表現スレへ) □初心者へのアドバイス: ・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも RubyやPerlの方が適した仕事には素直にそちらを使いましょう。 ・知らないコマンドが出てきたらmanを引きましょう。 ・思い通りに動かないときは、まずは sh -x でトレースしましょう。 前スレ シェルスクリプト総合 その18 hibari.2ch.net/test/read.cgi/unix/1308195527/ 次スレは >>970 で。
- 738 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/04(水) 12:05:16.44 ]
- >>736
うぉぉ マジだ。 test.c ってこんなことやってんのか。 はぁー 無駄にすげぇーなー
- 739 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/04(水) 12:15:50.42 ]
- 20年遅れてるスレ行けよ。何でいまさら誰でも知ってる話題でこのスレ無駄使いしてるの?
- 740 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/04(水) 12:21:38.54 ]
- test -e
- 741 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/04(水) 12:40:51.61 ]
- >>740
test以外でかっこいい方法で
- 742 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/04(水) 13:12:21.67 ]
- かっこいい(笑)
- 743 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/04(水) 13:21:55.37 ]
- 評価基準がよくわからん。
- 744 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/04(水) 15:21:58.49 ]
- >>743
coolかどうかってことだよ
- 745 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/04(水) 15:23:15.61 ]
- それがわからん。
- 746 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/04(水) 15:43:57.60 ]
- >>739
お前2でなに言ってんだよ
- 747 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/04(水) 16:47:37.67 ]
- >>746
どういう意味?
- 748 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/04(水) 23:21:13.48 ]
- 教えてください
TERM=$( (echo 'console() { term="$2"; for i do case $i in term=*) term=$(expr "$i" : "term=¥(.*¥)") esac done; echo "$term"; exit 0 }' というシェル関数なんですが、制御構文が良くわかりません。 for 変数 in 引数1 引数2 … do 処理 done とはかけ離れてますし(変数も引数もない)、 case 変数 in パターン1) 処理;; パターン2) 処理;; パターン3 | パターン4) 処理;; *) 処理;; esac が混じってますし... case文のどのパターンにも当てはまらない時の処理に「term=」がくっついてるし... これってどういう風に解釈すれば良いんでしょうか?
- 749 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/04(水) 23:30:30.61 ]
- set a b c
for i; do echo $i; done とかやってみれ
- 750 名前:名無しさん@お腹いっぱい。 [2012/04/04(水) 23:31:20.38 ]
- for に in がない場合は位置パラメータ($1 $2 ...)を使う。
位置パラメータをiにセットしつつforループを回して、 $iが term=* のパターンにマッチしたとき、 そのなんたらの部分(*にマッチした部分)をexprで抜き出して 変数termにセットする。 位置パラメータ全周したらその時点の $term を出力。 というconsole関数。
- 751 名前:名無しさん@お腹いっぱい。 [2012/04/05(木) 12:29:39.61 ]
- 教えてください><
以下のようなテキストファイルがあって、これを読み込んで下のような結果にするスクリプトを書きたいんですがいい方法が思いつきません; 地区、支店、名前が同じものは一番右にある数値を足しこんで出力すると言うものです。 awk のgetline を使えばどうにかなりそう・・・というイメージなんですが、どなたかご教授ください(泣 テキストファイル ---------------------------- A地区 〇支店 佐藤 5 A地区 〇支店 佐藤 9 B地区 □支店 伊東 3 B地区 □支店 木村 3 B地区 □支店 木村 5 C地区 △支店 青木 4 C地区 △支店 青木 4 C地区 △支店 野村 1 ---------------------------- 結果 ---------------------------- A地区 〇支店 佐藤 14 B地区 □支店 伊東 3 B地区 □支店 木村 8 C地区 △支店 青木 8 C地区 △支店 野村 1 ----------------------------
- 752 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/05(木) 12:39:50.77 ]
- >>751
awkで、getlineを使わずに普通にできる。 ただし、数字は半角で書いてないと計算できない。
- 753 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/05(木) 12:48:51.09 ]
- >>751
あっちスレの削除依頼出してきてよ。
- 754 名前:名無しさん@お腹いっぱい。 [2012/04/05(木) 13:03:00.03 ]
- >>753
すみません、やり方がわからないんで・・・ 後で出します;
- 755 名前:名無しさん@お腹いっぱい。 [2012/04/05(木) 13:06:43.25 ]
- >>752
getline を使わずにですか・・・ ちょっとヒントいただけますか?
- 756 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/05(木) 13:21:01.61 ]
- >>751
awk使わずにシェルだけでできるよ。 ただし、スペースは半角に、数字も半角にしてから実行すること。 標準入力から入力。 #!/bin/sh p_district= p_branch= p_name= n=0 while read district branch name val; do if [ "$district" = "$p_district" ] && [ "$branch" = "$p_branch" ] && [ "$name" = "$p_name" ]; then n=`expr "$n" + "$val"` else [ "$p_district" ] && echo "$p_district" "$p_branch" "$p_name" "$n" p_district=$district p_branch=$branch p_name=$name n=$val fi done echo "$p_district" "$p_branch" "$p_name" "$n"
- 757 名前:名無しさん@お腹いっぱい。 [2012/04/05(木) 13:33:45.35 ]
- >>756
お〜、有難うございます!大変助かります! 半角にして試して見ます。 ちなみに $0 テキストファイル といった具合に、テキストファイルを引数にして読み込み処理する、というようなことも出来るでしょうか?
- 758 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/05(木) 13:35:37.33 ]
- >>757
引数にしたかったら、 >>756 のしたから2行目の done のところを done < "$1" に修正すれば良い。 あと、入力ファイルはあらかじめソートされてること
- 759 名前:名無しさん@お腹いっぱい。 [2012/04/05(木) 13:42:26.55 ]
- >>758
すごい! 自分もこんなにあっさりスクリプトが書けるようになりたいものです・・・ 758 さん、有難うございました、大変勉強になりました。
- 760 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/05(木) 13:50:38.48 ]
- awkなんてAhoでもできることなのに
- 761 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/05(木) 14:44:15.71 ]
- だれか>>760の座布団全部取り上げろ
- 762 名前:名無しさん@お腹いっぱい。 mailto:sega [2012/04/07(土) 17:42:25.29 ]
- ディレクトリのmvできるかどうかを事前にチェックしたい
特定のディレクトリ以下に アクセス不能とか移動不能なものが あるかどうかを調べたいんですが、findでいいですかね
- 763 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/07(土) 19:40:38.64 ]
- だめだ、難しい
グループでOKになってるときのパターンがネックだ これのせいでワンライナーにならん
- 764 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/07(土) 22:52:59.06 ]
- >>762
find . ! -readable | wc -l でダメ?
- 765 名前:sage [2012/04/10(火) 19:58:25.17 ]
- for i in {1..10}; do command 1> ${i}.txt 2> ${i}.log &; done
とかやると, [1] + suspended (tty output) ... とかなって処理が終了しない.なぜぇ・・・
- 766 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/10(火) 21:04:40.05 ]
- それはね…
- 767 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/11(水) 08:00:04.70 ]
- >>765
面白いと思う
- 768 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/12(木) 09:02:11.67 ]
- ;が邪魔だって文句いわれたから、
はずして実行したら {1..10}.txt とかできたぞ どうしてくれる マジレスすると、commandの中身なによ
- 769 名前:sage [2012/04/12(木) 10:33:02.93 ]
- Cで書いたプログラムだね.
- 770 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/12(木) 19:19:17.01 ]
- commandはシェルビルトインコマンドでしょ
- 771 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/12(木) 19:30:36.07 ]
- というか、>>765 実行してもそういう現象は起きないので、
回答欲しかったらもっと具体的に "how to repeat" 書いてくれ
- 772 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/12(木) 21:09:49.38 ]
- >>765
そのcommandのプログラムがSIGTTOUをSIG_DFLに戻してしまってるんだろ。 普通ならシェル側でSIGTTOUはSIG_IGNにするからsuspendはしないようになってる。
- 773 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/12(木) 21:25:50.42 ]
- >>771
Steps to Reproduce だろ
- 774 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/12(木) 21:34:14.02 ]
- >>773
How to repeatで合ってる。というか、そんなところに突っ込んでも面白くない。
- 775 名前:名無しさん@お腹いっぱい。 [2012/04/12(木) 22:19:43.60 ]
- 再現性の話ならreproduceがふつー
- 776 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/12(木) 22:24:50.96 ]
- SIGTTOUについて答えられない奴が持論の英語を主張して話題逸そうとしてるなw
- 777 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/12(木) 22:27:19.83 ]
- 「バグの出し方」と書かれてる文章に、
「バグの再現手順」だろ? と突っ込んでるようなモン。
- 778 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/12(木) 23:01:56.84 ]
- GNUのバグトラッキングシステムがHow-To-Repeatってフィールド使ってるね
www.gnu.org/software/gnats/doc/3_113_1/gnats_1.html
- 779 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/13(金) 06:11:12.98 ]
- >>765
エスパーするとzshの最近のバージョンでのバグ。
- 780 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/13(金) 14:26:30.54 ]
- w3m &
で起きる奴とおんなじ.どうすればいいんだろ・・
- 781 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/13(金) 14:34:14.58 ]
- 何のこと?
- 782 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/13(金) 14:44:26.87 ]
- >>781
>>768の件.
- 783 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/13(金) 14:44:40.34 ]
- >>780
set +m で、ジョブコントロールを無効にすれば桶。 ただ、シェルスクリプト中から起動すればデフォで set +m 状態なんだがな。 コマンドラインから直接起動してるのか。
- 784 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/14(土) 21:01:39.51 ]
- どこに書いていいのかわかんないから、ここに書いてみる。
shell script書いててはまったんだけど、 ls -l /etc | sort -k4 -n がファイルサイズでソートしてくんない。 こんな↓感じで、なんか部分的にしかソートしてくれないみたい。 dpaste.org/ri4On/ バグ? 理由を知ってる人がいたら教えてちょうだい。 環境: debian squeeze $ uname -a Linux bauhaus 3.2.0-2-rt-686-pae #1 SMP PREEMPT RT Fri Apr 13 02:23:30 JST 2012 i686 GNU/Linux $ sort --version sort (GNU coreutils) 8.5
- 785 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/14(土) 21:09:58.78 ]
- >>784
sort -k5 -n だろ
- 786 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/14(土) 21:10:24.24 ]
- まぁ、ls -Sで良いんじゃないのか
- 787 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/14(土) 21:15:57.76 ]
- >>784
> 理由を知ってる人がいたら教えてちょうだい。 使い方が間違っている。
- 788 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/14(土) 21:18:22.79 ]
- 0番目から数えたくなる気持は分からなくもない
- 789 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/14(土) 21:26:12.51 ]
- いや、だって、man sort したら、
-k POS1[,POS2] -K POS1[,POS2] ソートフィールド指定の POSIX 形式。今後はこちらが 推奨される。行の POS1 から POS2 までのフィールドを指定する。 POS2 を含む。 POS2 が省略されたら行末まで。 フィールドと文字位置 はそれぞれ 0 から数えはじめる。 て書いてあったんだもん。 それを何も考えず信じたのでした。 LANG=C man sort だと、 -k, --key=POS1[,POS2] start a key at POS1 (origin 1), end it at POS2 (default end of line) てなってるのね。 確かに -k5ならソートしてくれたよ。 なんだかスレ汚し失礼しました。
- 790 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/14(土) 21:34:49.42 ]
- 本当だ。普段manpageは英語のものしか見ないから気付かなかった。
- 791 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/15(日) 01:03:11.15 ]
- 俺もだまされた。
さすが Linux とおもた。
- 792 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/15(日) 01:13:16.43 ]
- Linuxの日本語manはまったく整備されてないからなぁ
- 793 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/15(日) 01:18:04.06 ]
- alias man='LANG=C man'
しとくのオススメ
- 794 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/15(日) 01:20:40.59 ]
- $ man sort じゃなくて $ info sort がオヌヌメ
- 795 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/15(日) 02:33:57.03 ]
- Linuxの日本語 manと言えば、最近 bash 4.2の manが
翻訳されたのが嬉しかった。 GNU bash 4.2 の翻訳 linuxjm.sourceforge.jp/INDEX/gnu.html#GNU_bash
- 796 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/15(日) 11:22:51.82 ]
- コマンド foo と同名の関数 foo を作成し、後者の中から前者を呼び出そうと思っています。
function foo { foo } しかし当然ながら無限ループになります。 解決策としては function foo { `which foo` } という方法があります。 しかし毎回 which コマンドを起動するのがちょっと気にかかります。 別の方法として function foo { ¥foo } というのを試しましたが、だめでした。¥foo はエイリアスには効くけど関数にはききませんでした。 というわけで、今のところ which コマンドを使う方法しかなさそうですが、もっといい方法があれば教えて下さい。
- 797 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/15(日) 11:26:42.70 ]
- >>796
function foo { command foo } そのための「command」コマンド。
- 798 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/15(日) 12:24:24.87 ]
- 話は変わるけど、bashには`help'という組み込み関数があって、
bash$ help function とか bash$ help command とかするとその部分の説明文だけ表示してくれる
- 799 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/15(日) 13:24:53.76 ]
- 単に
/usr/bin/foo とかすればいいんじゃないの?
- 800 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/15(日) 13:34:57.91 ]
- >>799
最適解(>>797)が既に出てるのに、外した回答するオマエは黙ってろ。 PATHが違ったら適応できないだろw
- 801 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/15(日) 16:01:28.21 ]
- >>799のレスは別に問題視するようなものじゃない。
〜の方が良いと書いてあれば別だが。
- 802 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/15(日) 16:16:51.47 ]
- >>801
>>796 の質問で、わざわざ `which foo` と書いてることから、 絶対PATHで書いたのでは問題の解決にならないことは読みとれる。 質問者自信も絶対PATHを使う方法は知っている(けどそれじゃ駄目)と読みとれる。 質問の回答になってないのだから問題視されてもしょうがない。
- 803 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/16(月) 01:51:19.72 ]
- >>801
>>799みたいなトンチンカンな回答にも丁寧に答えてあげている >>800の優しさに気づけ
- 804 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/17(火) 15:40:51.44 ]
- >>797
「command」なんて初めて知りました。完璧です。ありがとうございました。 >>802 状況としてはまったくそのとおりで、すばらしいエスパーっぷりですが、 799はそこまで敵視されるようなことを書いてるわけじゃないので、 そんなに怖がらせなくてもいいかなと思いました。 技術者同士はみんな仲良くね!戦うべき相手は別にいるよ!
- 805 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/17(火) 16:49:46.48 ]
- >>800は常駐さんのお決まりレスです。
彼なりにイカしたレスだとお考えになっているのでしょう。 しばらくここにいれば慣れます。
- 806 名前:名無しさん [2012/04/23(月) 01:47:23.08 ]
- 検索コンプレックス
- 807 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/28(土) 14:15:07.91 ]
- 関数もexportできるようにならないかなぁ
環境変数ならぬ環境関数みたいな 便利だと思うんだけど
- 808 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/28(土) 14:19:23.03 ]
- >>807
え? できるけど。 export -f
- 809 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/29(日) 08:45:26.54 ]
- >>808
bash乙
- 810 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/29(日) 09:44:51.95 ]
- ____
/ \ / _ノ ヽ、_ \ / o゚⌒ ⌒゚o \ 不毛な言い争いがまた始まるお… | (__人__) | \ ` ⌒´ /
- 811 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/29(日) 10:46:16.86 ]
- キミの好物じゃないの
- 812 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/29(日) 17:13:31.08 ]
- >>808
ほんとだ、bashだとexport -fでできるのね zshだと駄目なんだけどオプションが違うんだろうか
- 813 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/29(日) 17:16:47.95 ]
- zshは今誰も使ってないからバグが放置されてるんじゃないか?
- 814 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/29(日) 18:14:30.17 ]
- >>813
そうなんだぁ・・・ いっそbashに戻ろうかな
- 815 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/06(日) 03:50:24.36 ]
-
質問です。 複数のコマンドの実行結果をソートしたいですが、うまくいきません。例えば、 イメージ的には以下のような感じ。 { cat FILE_A find PATH1 -print find PATH2 -print find PATH3 -print } | sort > FILE_A 以下を試しました find PATH1 -print >> FILE_A find PATH2 -print >> FILE_A find PATH3 -print >> FILE_A cat FILE_A | sort > FILE_A こうすると最後の FILE_A のファイルに結果がすべて出力されず尻切れになり ます。
- 816 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/06(日) 03:59:02.05 ]
- zshかbash系だとして一行で済ますなら
$ cat <(find PATH1) <(find PATH2) <(find PATH3) | sort $ cat < FILE_A | sort > FILE_A が失敗するのはまあそんなものだと思っておけばいい。 同じファイルから読み込んで出力するのは失敗する。 $ cat < FILE_A | sort > FILE_B ならおk
- 817 名前:名無しさん@お腹いっぱい。 [2012/05/06(日) 04:09:18.13 ]
- (rm FILE_A; sort > FILE_A) < FILE_A
みたいな手もあるが、間違えたら泣ける。
- 818 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/06(日) 04:15:04.88 ]
- 同じ条件で検索するなら
find PATH1 PATH2 PATH3 | sort でいいよな。
- 819 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/06(日) 05:15:17.42 ]
- >>815
> cat FILE_A | sort > FILE_A マルチタスクな OS では普通パイプやリダイレクトの際に前後の プロセスが同時に起動する。 ファイルを読むプロセスが終了するのを待ってファイルを書くプ ロセスが起動する訳ではない。 なので、上記の場合は最後に書き込むファイル名を変更しなければならない。
- 820 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/06(日) 14:36:51.94 ]
- TEMP=`tempfile`
cat FILE_A > "$TEMP" find PATH1 -print >> "$TEMP" find PATH2 -print >> "$TEMP" find PATH3 -print >> "$TEMP" sort "$TEMP" > FILE_A
- 821 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/06(日) 14:53:36.25 ]
- すみませんが添付ファイルは梨の奉公でお願いします
- 822 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/06(日) 15:27:35.80 ]
- >>815
www.gnu.org/software/coreutils/manual/html_node/sort-invocation.html#sort-invocation cat FILE_A | sort -o FILE_A
- 823 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/06(日) 16:20:24.14 ]
- >>822
catとパイプが無駄です。 sort -o FILE_A FILE_A
- 824 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/06(日) 17:20:10.08 ]
- ランダルシュワルツの不要なcat添削を思いだした
- 825 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/06(日) 18:55:31.70 ]
- cat議論はこのスレの>>147-213あたりで延々やってるな。
- 826 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/06(日) 19:22:02.88 ]
- 添付ファイルを使わないのは大手SIerじゃ常識だね。
- 827 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/06(日) 19:23:49.29 ]
- 思案パイプ
- 828 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/07(月) 19:19:08.78 ]
- 対話方式にならないようにシェルスクリプト自信がroot権限で実行されるようにするスクリプトって作れますか?
- 829 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/07(月) 21:03:44.73 ]
- >>828
対話的コマンドでもexpectでなんとかなる
- 830 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/07(月) 21:11:42.22 ]
- >>829
そういう意味じゃなくて、シェルスクリプト中で su -c hoge とかしないで root権限の動作をさせたいという質問かとエスパー。
- 831 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/07(月) 21:16:30.15 ]
- 基本的にsuidはシェルスクリプトでは許可されてないからねえ。
昔あったsuidperlみたいなののbash版を探してみたけどないみたいだし。 sudersに対象となるスクリプトに対してNOPASSWDを設定するぐらいしか思いつかないや。
- 832 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/08(火) 02:00:49.38 ]
- >>828
できます コマンドラインを実行するだけのプログラムを作って setuidするば
- 833 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/08(火) 07:52:21.31 ]
- >>832
>>831
- 834 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/09(水) 13:22:49.97 ]
- forum.xda-developers.com/showthread.php?t=540483
ここに書いてあるシェルスクリプトを動かしてみたんですが、 Syntax error: "do" unexpectedと返されてしまいます ヒントだけでもいいんで教えてください。
- 835 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/09(水) 13:28:11.27 ]
- -x 付けて実行してどこでエラーか見てみたら
bash -x secrets.sh
- 836 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/09(水) 13:29:47.52 ]
- >>835
わからないなら黙ってろ
- 837 名前:835 mailto:sage [2012/05/09(水) 13:30:45.77 ]
- あ、スレ間違えてたorz
- 838 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/09(水) 15:17:41.55 ]
- なぜかしら、回答としては合ってる気がするぞw
|

|