シェルスクリプト総合@LINUX Part4at LINUX
シェルスクリプト総合@LINUX Part4 - 暇つぶし2ch964:login:Penguin
09/03/24 22:13:47 JcSO3hFa
>>962
URLリンク(www.linux.or.jp)
>関数ローカルの変数は、組み込みコマンド local で宣言できます。
>普通は、変数とその値は関数とその呼び出し側で共有されます。

965:962
09/03/24 23:09:01 vhkRQKv/

グローバル変数で受け渡し?

んまあそうなんですけど、
なんでもグローバルという、BASIC言語みたいなのは生理的にイヤ。
可能な限り普段から全部 local 宣言つけてますので。

なんとか、return VAL_A VAL_B
とかムリっすか?



966:login:Penguin
09/03/24 23:27:22 JcSO3hFa
>>965
無理
> return [n]
> 指定した返り値 n で関数を終了させます。
> n を省略すると、返却ステータスは関数内で最後に実行したコマンドの返却ステータスになります。

スクリプトを分けて標準入出力で受け渡すくらいしか思いつかん

967:login:Penguin
09/03/24 23:31:50 elKnmt6d
俺も昔戻り値二つ返したかったが諦めたことがある。
泣く泣くグローバルにした。

968:login:Penguin
09/03/24 23:32:20 LPmFGK87
>>965
無理矢理だけどこんなことは出来る。

foo ()
{
echo "$VAL1 $VAL2"
}

VALS=(`foo`)

VAL1=${VALS[0]}
VAL2=${VALS[1]}



969:login:Penguin
09/03/25 12:00:35 ZZ2mmRGj
グローバル変数がイヤならばそもそも sh じゃなくて別のスクリプト言語で書け。
そういう言語なんだからあきらめて受け入れろ。
無理に技巧をこらしたところで逆に可読性を落とすだけ。

970:login:Penguin
09/03/25 12:15:44 NaCjRRoe
>>969
そうおもう。perlでもrubyでもgaucheでもいいから。
でも、延長線上で使えるrubyのほうが馴染みやすいかも

971:login:Penguin
09/03/25 12:23:07 uD+uLQB8
>>962
> return VAL1 VAL2
< echo VAL1 VAL2
してreadしる


972:login:Penguin
09/03/25 17:28:54 GtIifwrA
/tmpに書け

973:login:Penguin
09/03/26 15:32:50 3e22XvSN
シェルスクリプトを始めて勉強するのですが、

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界(URLリンク(www.amazon.co.jp))



UNIXシェルスクリプトコマンドブック(URLリンク(www.amazon.co.jp))

どちらで勉強するのが良いでしょうか?

974:973
09/03/26 15:33:45 3e22XvSN
×始めて 
○初めて

orz

975:login:Penguin
09/03/26 16:30:55 5RpvIQgk
入門bashがオヌヌメ

976:login:Penguin
09/03/27 00:19:45 hx4pY+SP
どれでもいっしょでヌメヌメ

977:login:Penguin
09/03/27 01:38:27 SSuQKmC1
>>976
>>975

ありがとうございます。
まずは>>975さんにヌメヌメして頂いた入門Bashから勉強していきたいと思います。

978:login:Penguin
09/03/27 02:32:52 3RSixa0K
つ「全部」

979:login:Penguin
09/03/29 04:23:46 k6vYgSJE
とあるディレクトリ以下に存在する
特定の拡張子のファイルのみについてファイルサイズの合計を知りたい場合、
最もマシンに負荷を与えずに結果を出すにはどの方法が適しているでしょうか?

・ duコマンドだと除外パターンのパラメータしかない
・ lsの結果の拡張子でgrepした後、ファイルサイズ部分をawkしてexprで足し算だと負荷が結構かかる

という感じで、もっとサクっと結果を軽い処理で出せるような気がするんですが・・・。

980:login:Penguin
09/03/29 05:38:56 RIZc4nP9
findとawkで

981:login:Penguin
09/03/29 07:07:03 HsEQt0tU
>・ lsの結果の拡張子でgrepした後、ファイルサイズ部分をawkしてexprで足し算だと負荷が結構かかる

expr要るのか?
ls -Rl | grep "\.suffix" | awk '{size += $5} END {print "total " size}'
find -name \.suffix -printf "%s\n" | awk '{size += $1} END {print "total " size}'

982:login:Penguin
09/03/29 15:49:16 HhnBqalt
>-name \.suffix
o... rz

983:login:Penguin
09/03/30 08:01:30 4/oTu4d/
10台くらいサーバセットアップする必要があり、
それぞれのapacheの設定ファイルのIP部分だけ変えたいのですが、
何かシンプルで良い方法ってあるでしょうか?

環境変数設定kono_server_no_ipを設定して、
sedあたりで設定ファイルのIP部分をkono_server_no_ipに置換処理、
みたいな感じをぱっと思いついたのですが、
もっとベターな方法ってあるでしょうか?

984:login:Penguin
09/03/30 10:33:16 rBZKWvDE
>>983
まずサーバ毎の環境変数(kono_server_no_ip)の設定はどうやるの?
環境変数の設定をエディタでやったら本末転倒だよね?

「このIP」が自分自身のipアドレスでいいなら、ifconfigで取得してsedで置換。

あと、シンプルじゃなくていいならPuppetとか。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch