[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 19:35 / Filesize : 221 KB / Number-of Response : 848
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

シェルスクリプト総合@LINUX Part5



1 名前:1様 [2009/04/03(金) 22:17:43 ID:0qFlvOW9]
UNIX板のスレを見ている方も多数おられるかと思いますが、
まあそれはそれとして、BASHウゼーとか言われる心配なく
平和にLINUX的スクリプト談義しましょうよ。

初めての自作スクリプト、自信ないから見てください。な初心者から
トリッキーな技を駆使した作品を披露したい、蘊蓄を語りたい上級者まで
いろいろな人に参加して頂けると嬉しいです。

perlやらPythonやらの話が混ざっても良いんでない?

Part4 : pc11.2ch.net/test/read.cgi/linux/1210999497/
Part3 : pc11.2ch.net/test/read.cgi/linux/1184077033/
Part2 : pc11.2ch.net/test/read.cgi/linux/1154578200/
Part1 : pc8.2ch.net/test/read.cgi/linux/1121994321/

>>2-5あたりに色々と。

655 名前:login:Penguin mailto:sage [2010/03/06(土) 12:21:04 ID:zGIcPUED]
POSIX仕様は知らない
シェル実装によって違いがあるけどパイプはサブシェルで実行される
$ date | (while read line; do last="$line"; done;echo "THE LAST: $last")
で回避になるならいいけど
$ date | while read line; do last="$line"; done
$ echo "THE LAST: $last"
ということをしてkshを正解としたいなら一時ファイルくらいしか思いつかない

656 名前:login:Penguin mailto:sage [2010/03/06(土) 19:57:46 ID:vEOUh0ms]
dateをパイプでwhileに放り投げる目的は何?

657 名前:login:Penguin mailto:sage [2010/03/06(土) 20:01:13 ID:lSm8LSXx]
ただの例題

658 名前:login:Penguin mailto:sage [2010/03/06(土) 20:12:35 ID:zGIcPUED]
このスレで質問してるやつはほとんど約1名でただのキチガイだと思ってる
区別ができれば間違いなく回答しないんだけどねぇ

659 名前:login:Penguin mailto:sage [2010/03/06(土) 21:29:26 ID:U6pPRiRF]
お前以外は全部俺の自作自演です

660 名前:login:Penguin mailto:sage [2010/03/06(土) 21:38:12 ID:zGIcPUED]
質問者以外はどっちでもいいけど

661 名前:654 [2010/03/06(土) 22:34:04 ID:8ckQdz96]
>>655さん
> シェル実装によって違いがあるけどパイプはサブシェルで実行される
勉強になります。
[linux-users:96159] Re: [bash]whileループ内変数値の扱いについて教えてください。
ttp://search.luky.org/linux-users.9/msg06102.html
のような、3以上のfdを使う方向でいこうと思います。
ありがとうございました。

662 名前:login:Penguin mailto:sage [2010/03/07(日) 05:39:29 ID:qUDKVagf]
使っているbashの制約事項はどこに書いてある?

663 名前:login:Penguin mailto:sage [2010/03/07(日) 15:21:22 ID:kzHmHVjG]
日本語でおk



664 名前:login:Penguin mailto:sage [2010/03/07(日) 15:50:18 ID:BVZuVuVb]
>>662
/usr/share/doc/bash-doc-*/COMPAT
かな。

665 名前:login:Penguin mailto:sage [2010/03/07(日) 15:58:04 ID:CtU/xHgd]
俺の認識不足なのかもしれんが
dateコマンドを単独で使っても、1行しか出力しなくね?

$ date
2010年 3月 7日 日曜日 15:50:25 JST

whileにパイプでつなぐ意味がわからん。
もしlsみたく複数行で出力するコマンド実行したならわからなくもないけど、
それなら無理にパイプでwhileにつなぐ必要ないし。

$ ls
sample.sh sample2.sh xyz.txt
$ for i in `ls`; do X="$i"; done; echo "$i"
xyz.txt

別の方法で簡単に解決できることをどうして難しくするのか意味不明。

666 名前:login:Penguin mailto:sage [2010/03/07(日) 16:24:31 ID:/xXz4ARQ]
>>665
おまえは質問者の質問意図がわかってない

667 名前:login:Penguin mailto:sage [2010/03/07(日) 16:27:22 ID:CtU/xHgd]
>>666
わかるわけない。
whileにパイプでつないでサブシェルになるからどうとか、
そういうので困ったことないから。


668 名前:667 mailto:sage [2010/03/07(日) 16:29:06 ID:CtU/xHgd]
っていうか、
実用上、それをどうしても使わないと書けないものなんてあるの?
例を示せるなら示してほしいもんだね。

669 名前:login:Penguin mailto:sage [2010/03/07(日) 16:31:06 ID:lFJTxoe3]
おい、誰かこの馬鹿をつまみだせ

670 名前:login:Penguin mailto:sage [2010/03/07(日) 16:33:48 ID:CtU/xHgd]
>>669
だから、実用上どういう意味があるのか教えてくれれば
言われなくても出ていくけど。

671 名前:login:Penguin mailto:sage [2010/03/07(日) 16:42:38 ID:lFJTxoe3]
変数の扱い方が知りたかっただけろ。
例としてとりあえず適当に思いついたdateを使ったんだろう。
ただの一例なんだから実用上は別に意味ない。

672 名前:667 mailto:sage [2010/03/07(日) 16:47:13 ID:CtU/xHgd]
catコマンドを使ってファイルの中身を出力してパイプでwhileにつないだとか、
そういうのならわかるんだがな。
もっとも、その程度ならパイプ使わないで書けばいいだけだが。
だから、どんなことをキッカケにそんな質問が出てきたのかよくわからん。

まぁ、興味本位で意味のないことする人ってのもいるんだろうけどさ。
ガソリン車に灯油を入れてみるとか、
トラックでレールの上を走ってみるとか。
俺から見ると、そういう変人と同レベルの質問に見えるのさ。

673 名前:login:Penguin mailto:sage [2010/03/07(日) 18:49:32 ID:kzHmHVjG]
(キリッ



674 名前:login:Penguin mailto:sage [2010/03/07(日) 18:57:12 ID:T97Hz24h]
頭の中でdateを適当なものに置き換えればいいだけじゃん。
質問する上での便宜かもしれないってのに
いちいち突っ掛かってくるヤツってなんなの?

675 名前:login:Penguin mailto:sage [2010/03/07(日) 19:44:39 ID:CtU/xHgd]
>>674
dateだからダメとかだけじゃなく、それ以前に変な質問だろ。

>>654
>それがPOSIX仕様なら、一時ファイルを作る以外に、よい回避方法はありますか?
に対する答は「パイプを使うな」。

>>661
>3以上のfdを使う方向でいこうと思います。
に対しては「他に手段がないならさておいて・・・正気か?」。

676 名前:login:Penguin mailto:sage [2010/03/07(日) 22:20:17 ID:EI1vZsn/]
だから、お前はそもそもまともなスクリプトも書けないのに、容喙せんでいい。

677 名前:login:Penguin [2010/03/07(日) 23:06:32 ID:qcuqADXg]
>>676
あれほどアホな質問しない程度には書けるが。
質問者が何をやろうとしてるか知らんが
意地でもパイプでwhileに投げて実現しようとしてんだろ?
まともな神経してたら別の方法でやるのにさ。

っていうか、質問者を擁護してる君も質問者みたいな書き方すんの?
合理性を考えたほうがいいよ。

678 名前:login:Penguin mailto:sage [2010/03/07(日) 23:27:59 ID:s4PVEnib]
見ない間に核心つかれてるし
ここのキチガイはLIFEも低そうだし
なむなむ

679 名前:login:Penguin mailto:sage [2010/03/08(月) 08:59:52 ID:/FTwkaX/]
mkfifoでnamed pipe作って使う手もあるな。

mkfifo fifo;
date > fifo&
while read line < fifo ; do last="$line"; done; echo "THE LAST: $last"
rm fifo

680 名前:login:Penguin mailto:sage [2010/03/09(火) 20:30:43 ID:o5fd938a]
command 2>file.log

で標準エラー出力をファイルに書き出しているのですが、
エラーでない場合も0バイトのfile.logが生成されてしまいます。

エラーでない場合はfile.logは生成しない方法などあるのでしょうか?

681 名前:login:Penguin mailto:sage [2010/03/09(火) 20:44:25 ID:NDaUm8+N]
>>680
終了ステータスでエラーかどうかわかるじゃん。

682 名前:login:Penguin mailto:sage [2010/03/09(火) 20:47:03 ID:LVMm3tsD]

ウォーニングは無視ですか?

683 名前:login:Penguin mailto:sage [2010/03/09(火) 20:48:59 ID:JIyb876K]
0バイトなら削除したらええがな



684 名前:login:Penguin mailto:sage [2010/03/09(火) 20:50:37 ID:NDaUm8+N]
条件後出しか…

685 名前:login:Penguin mailto:sage [2010/03/09(火) 20:52:24 ID:LVMm3tsD]
条件を甘く見たお前さんが悪い。

686 名前:login:Penguin mailto:sage [2010/03/09(火) 20:57:40 ID:NDaUm8+N]
居直られちゃったよ。

687 名前:login:Penguin mailto:sage [2010/03/09(火) 21:03:59 ID:o5fd938a]
>>683
削除することにしました。

ファイル作らないで良い方法はないのかなー?


688 名前:login:Penguin [2010/03/09(火) 22:45:08 ID:wS8nnpNv]
2>file.log でファイルが開かれるのは command が実行される前。
エラーがあったかどうか分かるのは、command の実行が完了した後。
file.log の中身が重要かどうかは、実行終了まで分からないのだから、
普通に考えて、後から削除するのが素直ですよね。

素直じゃない例。長くなっても大丈夫か分かりません。

#!/bin/sh

exec 3>&1
cmd='{ ./some.sh 2>&3 1>stdout.log 3>&- ; } 3>&1 | grep -v warning'
errout=`eval $cmd`
exec 3>&-
if [ -n "$errout" ]; then
echo "there were one or more error"
echo "$errout" >stderr.log
fi


689 名前:login:Penguin mailto:sage [2010/03/10(水) 20:15:59 ID:7RM74zt/]
久しぶりにマニアックなコード見た。

690 名前:login:Penguin mailto:sage [2010/03/12(金) 00:36:34 ID:g58g7Khc]
読み解けん;_;

691 名前:login:Penguin mailto:sage [2010/03/16(火) 06:49:42 ID:+KO51EwF]
一回3に2の出力を出して、空ならthere were one or more errorを1に出力、空じゃなければstderr.logに出力


692 名前:login:Penguin mailto:sage [2010/03/16(火) 08:33:07 ID:L4OU7Nfk]
>>688

だれか解説よろ

693 名前:login:Penguin mailto:sage [2010/03/16(火) 17:36:29 ID:7rwiLleU]
グロブで /etc/pass* のリストを得たいのだが、
list=/etc/pass*
だと展開してくれない。

list=$(ls /etc/pass*) ならおkで、改行文字 '\n' 区切りのリストになる。
だが ls のために fork してしまうのが痛い。
どうにかならんのか。

お願いします m(_ _)m



694 名前:login:Penguin mailto:sage [2010/03/16(火) 17:41:09 ID:7rwiLleU]
あっさり解決した。
printf "%s\n" /etc/pass*

これでいいのか。よくわからんが、printfは組み込みコマンドだったはず。。

695 名前:login:Penguin mailto:sage [2010/03/16(火) 17:55:59 ID:oDvWUAap]
>>693
試したら展開できたけどな。

696 名前:login:Penguin mailto:sage [2010/03/16(火) 17:59:59 ID:jFL6NZ+y]
昔はechoを使ったもんじゃ

697 名前:login:Penguin mailto:sage [2010/03/16(火) 18:00:18 ID:7rwiLleU]
>>695
本当貝?bash?
$ list=/etc/pass*
$ echo "${list[@]}"
/etc/pass*

ダメなんだが。。これをパイプで他のコマンドに渡したいから、ギリギリで展開されても困る。

698 名前:login:Penguin mailto:sage [2010/03/16(火) 18:01:26 ID:oDvWUAap]
>>697
echo $list で。

699 名前:login:Penguin mailto:sage [2010/03/16(火) 18:01:54 ID:7rwiLleU]
>>696
echo だと改行文字 '\n' 区切りのリストにならない。
$ list=$(echo /etc/pass*)
$ echo "${list[@]}"
/etc/passwd /etc/passwd-

700 名前:login:Penguin mailto:sage [2010/03/16(火) 18:03:33 ID:oDvWUAap]
>>699
そんな条件なかったじゃん。

701 名前:login:Penguin mailto:sage [2010/03/16(火) 18:05:27 ID:7rwiLleU]
>>700
だからprintfを使うことにしたよ。
「一行ずつ」読むコマンドにパイプで渡さないといけないから。

702 名前:login:Penguin mailto:sage [2010/03/16(火) 18:06:01 ID:oDvWUAap]
後出しで文句言われても……。

703 名前:login:Penguin mailto:sage [2010/03/16(火) 18:07:08 ID:7rwiLleU]
>>702
いえ事故解決しました、と言った後であなたが展開できましたとおっしゃったので
私はレスをしただけです。



704 名前:login:Penguin mailto:sage [2010/03/16(火) 18:08:01 ID:7rwiLleU]
あ、どうもありがとう(^^)

705 名前:login:Penguin mailto:sage [2010/03/16(火) 18:15:41 ID:m9fA5s2e]
for i in /etc/pass*; do echo "$i"; done | command...

706 名前:login:Penguin mailto:sage [2010/03/16(火) 18:17:49 ID:7rwiLleU]
>>705
すみません、また後出しですが、一応言っておきます。
わざわざ変数 list に格納しているのは、後で自分が参照するからです。

707 名前:login:Penguin mailto:sage [2010/03/16(火) 22:36:09 ID:vMRJlqrh]
はいはい次どぞー

708 名前:login:Penguin mailto:sage [2010/03/16(火) 22:41:29 ID:7rwiLleU]
え、いいんですか?次

709 名前:login:Penguin mailto:sage [2010/03/20(土) 00:18:55 ID:qKxWTBVf]
ファイルから丸括弧(開く) "(" だけの行を読み込んだ際、
if [ \( "$LINE" = "$CHK1" -o "$LINE" = "$CHK2" \) -a \( "$A" = "$B" -o "$C" = "$D" \) ]; then
といったif文でエラーとなってしまいます。
何がまずいのでしょうか?

710 名前:login:Penguin [2010/03/20(土) 07:41:24 ID:SCWfCSZ4]
>>709
if [ \( "x${LINE}x" = "x{$CHK1}x"
だと通りませんか。


711 名前:login:Penguin mailto:sage [2010/03/20(土) 12:14:57 ID:qKxWTBVf]
>>710
早速の回答、ありがとうございます。
マシンが平日しか使えないので、火曜日に試してみます。

ところで、$LINE="("の場合だと、
if [ \( "$LINE" = "$CHK1" \) ]; then だとエラーとなりますが、
if [ "$LINE" = "$CHK1" ]; then だとエラーとなりませんでした。
何か書き方が間違えているのでしょうか?

712 名前:login:Penguin mailto:sage [2010/03/20(土) 12:17:45 ID:qKxWTBVf]
連投すません。

どちらの書き方も、$LINE="(A"とかだとエラーとなりません。
"("の場合のみ、エラーとなります。
なんでだろ?

713 名前:login:Penguin mailto:sage [2010/03/20(土) 22:21:20 ID:7Z9+G9O/]
例外処理ってどうすればいいだろうか。

for x in ...
do
  処理A && \
  処理B && \
  処理C && \
  continue

  # エラー?
  後片付け、そして次のアイテム
done

サブルーチン化するもの手だけど、それも大袈裟な場合ってどうやるのがスマートだろうか。
すべてを && を繋げる方法しか思いつかない。。



714 名前:login:Penguin [2010/03/20(土) 22:33:44 ID:SCWfCSZ4]
>>713
ttp://www.unix.com/shell-programming-scripting/38127-exception-handling.html
に、
cleanup_script()
{
echo "Cleaning ..."
}
trap 'cleanup_script' ERR
set -e
ってコードがあったです。set -e が肝らしい。

715 名前:login:Penguin mailto:sage [2010/03/20(土) 22:43:49 ID:7Z9+G9O/]
>>714
ありがとう。便利ですが、/bin/sh(DebianだとDASH)ではうまく動作しませんでした。
BASHなら問題ありません。

handler()
{
  echo "Trap ERR!"
  exit 1
}

set -e
trap ?handler? ERR
for x in $(seq 1 10)
do
  echo $x
  [ $x -eq 5 ] && false
done

実行結果:
1
2
3
4
5
Trap ERR!

716 名前:login:Penguin mailto:sage [2010/03/20(土) 22:47:11 ID:7Z9+G9O/]
SIGUSR1 30,10,16 Term ユーザ定義シグナル 1
SIGUSR2 31,12,17 Term ユーザ定義シグナル 2

これを使うのもアリか...

717 名前:login:Penguin mailto:sage [2010/03/20(土) 23:28:40 ID:7Z9+G9O/]
あともう一つ質問!

#!/bin/sh
echo $@
exit 0

というプログラムがあったとして(test.shとする)、

./test.sh 'hoge' 'fuga' > fileA
./test.sh > fileB 'hoge' 'fuga'

をすると、fileAとfileBの両方とも同じ結果になるんだけど、これはどう違うの?

718 名前:login:Penguin mailto:sage [2010/03/21(日) 01:59:46 ID:AC+zwoRf]
シェルスクリプトで他のサーバにあるファイルを弄ることは可能ですか?

具体的には、
ローカルPC、サーバA、サーバBという3台のPCがありまして
サーバA上の特定のファイルを編集してサーバBにアップロードし、さらにAにある他のファイルをBにアップロードする
という処理をローカル上のシェルスクリプトで自動化したいのです。

しかしsshコマンドで他サーバに繋ごうとするとパスワードを聞かれる所で止まってしまいます。

719 名前:login:Penguin mailto:sage [2010/03/21(日) 02:04:15 ID:65tFCowN]
つ公開鍵認証

720 名前:login:Penguin mailto:sage [2010/03/21(日) 02:11:15 ID:AC+zwoRf]
なるほど…やはりそうなるのですね
公開鍵とやらを勉強することにします
mysql -u root -prootみたいに指定できればいいのになぁ

721 名前:login:Penguin mailto:sage [2010/03/21(日) 02:16:36 ID:AC+zwoRf]
というか、仮にsshで繋げたとしても
実行環境が他サーバに移るわけじゃないし他サーバのファイルをいじるのは無理なのかな?
シェルスクリプトはcdコマンドの実行結果すら次の行に持ち込まないですよね
全ての実行行は独立したシェルで実行されるとか何とかで。

722 名前:login:Penguin mailto:sage [2010/03/21(日) 02:36:57 ID:65tFCowN]
こんな感じで編集も転送もできる
ssh -i 秘密鍵A ユーザ名A@Aサーバ "任意のコマンド(編集ならsedとかawk)"
ssh -i 秘密鍵A ユーザ名A@Aサーバ "任意のコマンド(転送ならscp -i 秘密鍵B 編集したファイル ユーザ名B@Bサーバ:保存場所 )"

エラー処理とかちゃんとしたいならAサーバに編集、転送用のスクリプト置いてクライアントからは引数だけ渡せばいいし

723 名前:login:Penguin mailto:sage [2010/03/21(日) 06:55:40 ID:s8pDEsGz]
>>721
expectは?



724 名前:login:Penguin mailto:sage [2010/03/21(日) 09:41:21 ID:oiz+h8tr]
>>721
>シェルスクリプトはcdコマンドの実行結果すら次の行に持ち込まないですよね

#!/bin/sh
cd /tmp
./hoge.sh

上記は/tmpに移動して、/tmpにあるhoge.shを実行するけど?

725 名前:login:Penguin mailto:sage [2010/03/21(日) 10:09:43 ID:s8pDEsGz]
ssh host cd /tmp
ssh host ./hoge.sh

こんなアホをやっていると予想。

シェルスクリプトを予めscpで送っておくとか、標準入力の内容をスクリプトとして実効できたり出来ないんかね。

726 名前:login:Penguin [2010/03/21(日) 17:30:12 ID:cuEg7ODK]
echo "( cd /tmp ; ./hoge.sh )" | ssh host
でいいですよね。

727 名前:login:Penguin mailto:sage [2010/03/21(日) 17:55:39 ID:gIM4/doG]
>>712

-x をつけて実行してみるとなんとなくわかるかも。

文字列の比較のときは710氏の方式で前後に固定文字を入れたほうが誤動作しにくい。


ただタイプミスだと思うけど、中括弧の位置が間違ってて
 if [ \( "x${LINE}x" = "x${CHK1}x"
だけどね。

728 名前:login:Penguin mailto:sage [2010/03/21(日) 20:47:12 ID:NvA+aKwG]
>>727
ありがとう。
固定文字列を入れて比較するのは、いいアイディアですね。
(なんで思いつかなかったんだろう…)

729 名前:login:Penguin mailto:sage [2010/03/24(水) 01:16:09 ID:fusHHN2e]
お願いします。

・forの入れ子構造ってOKなんでしょうか?

#!/bin/bash
#nekoneko.sh

for var in aaa
do

for fstype in fs
do
hogehoge=neko
done

echo $var/$hogehoge
done

#sh nekoneko.sh

aaa/neko

期待結果は得られているのですが、勉強中なのであっているかどうかがわかりません。


・forでテキストファイルの読み込みってできないのでしょうか?
dosのバッチで言うところの for /f %%a in (nekoneko.txt) do 〜のような方法です。

よろしくお願いします。

730 名前:login:Penguin mailto:sage [2010/03/24(水) 01:24:36 ID:KIBvvI04]
>・forの入れ子構造ってOKなんでしょうか?
OK

>・forでテキストファイルの読み込みってできないのでしょうか?
DOSのforはしらんが
for a in `cat nekoneko.txt`
でいいのか?


731 名前:login:Penguin mailto:sage [2010/03/24(水) 10:02:51 ID:qcQ/2FhI]
>>729
インデントしようよ。
全角空白で書くけど、半角空白に変換してくれ。

#!/bin/bash
for var in aaa; do
 for fstype in fs; do
  hogehoge=neko
 done
 echo $var/$hogehoge
done

ファイル読んで回すのは while read とか使うんじゃね。

732 名前:login:Penguin mailto:sage [2010/03/24(水) 12:47:43 ID:D4crZAMy]
>>731
全角空白のインデントはやめろ!
半角空白のほうがいい
お前の専ブラ変えろ馬鹿


733 名前:login:Penguin mailto:sage [2010/03/24(水) 12:51:42 ID:D4crZAMy]
#!/bin/bash
for var in aaa; do
for fstype in fs; do
hogehoge=neko
done
echo $var/$hogehoge
done



734 名前:login:Penguin mailto:sage [2010/03/24(水) 12:58:21 ID:pFOtZDrD]
恥ずかしいね。

735 名前:login:Penguin mailto:sage [2010/03/24(水) 13:12:41 ID:D4crZAMy]
usamimi.info/~linux/d/up/up0503.png
usamimi.info/~linux/d/up/up0504.png

生ログにはタブと半角空白はきちんと記録されてるから。
素直に表示する専ブラで見れば奇麗にインデントされる。

736 名前:login:Penguin mailto:sage [2010/03/24(水) 13:18:59 ID:pFOtZDrD]
おいおい、pre要素以外では連続する空白文字は一つにまとめられるのだが。
2ちゃんねるのデータ書式はウンコだけど、連続する空白文字をそのまま
表示する仕様なんてないぜ?

そういうブラウザを押しつけるのはどうなの、って思うけど。

737 名前:login:Penguin mailto:sage [2010/03/24(水) 13:25:53 ID:qcQ/2FhI]
>>732
うちの環境では半角空白でも見えるけど
相手の環境で見えるとは限らないから。

738 名前:login:Penguin mailto:sage [2010/03/24(水) 13:29:31 ID:pFOtZDrD]
これはブラウザ依存だと思うね。

空白文字をそのまま扱うものもあれば、HTMLの仕様に準じて無視するものもある。
&nbsp; を使う手もあるのだが、これを同処理するかもブラウザ依存。
まあ2ちゃんねるがクソなんだが。

739 名前:login:Penguin mailto:sage [2010/03/24(水) 13:31:53 ID:KIBvvI04]
おまいらスクリプトについても語ってやれよ・・・

740 名前:login:Penguin mailto:sage [2010/03/24(水) 13:37:19 ID:D4crZAMy]
>>737
アンタ良い人だね。
でもな、コード貼る事が多いスレを見てるんなら閲覧者のほうでインデントするブラウザにしたほうがお互いに楽だぜ。
貼るほうもコピーする側もそのまま使えるんだから。うっかり全角空白入れたまま使う事もない。
スクリプトスレなら困る事少いかもだが、全角空白の入ったパッチ貼られたりしたら目もあてらんねぇよ?

741 名前:login:Penguin mailto:sage [2010/03/24(水) 13:39:50 ID:qcQ/2FhI]
>>740
だから「変換してくれ」って書いたじゃん。
閲覧者の環境まで責任持てん。

742 名前:login:Penguin mailto:sage [2010/03/24(水) 13:40:45 ID:qcQ/2FhI]
良い人とかってよりも、portability を重視しただけだよ。
書く環境と読む環境が同じとは限らない。
こういう配慮はスクリプト書きもいっしょ。

743 名前:login:Penguin mailto:sage [2010/03/24(水) 13:48:01 ID:D4crZAMy]
とりあえず「全角空白を推奨」するのだけは勘弁してくれ。
それが無きゃ俺も黙ってさ。




744 名前:login:Penguin mailto:sage [2010/03/24(水) 13:53:55 ID:qcQ/2FhI]
推奨なんてしてないよ。

745 名前:login:Penguin mailto:sage [2010/03/24(水) 14:04:24 ID:D4crZAMy]
>インデントしようよ。
>全角空白で書くけど、半角空白に変換してくれ。

インデントは推奨してるが、改めて見直すと全角空白推奨ではないと言われたら確かにそうだな。
いきなり俺の言い方がきつかったのは謝る。数日前にム板で同じような事があってココでもか!と思ったもんだからついな。
すまんかった >ID:qcQ/2FhI

746 名前:login:Penguin mailto:sage [2010/03/24(水) 14:05:59 ID:eh1BmETO]
 
藻前ら、モティツケ
     /\⌒ヽペタン
   /  /⌒)ノ ペタン
  ∧_∧ \ (( ∧_∧
 (; ´Д`))' ))(・∀・ ;)
 /  ⌒ノ ( ⌒ヽ⊂⌒ヽ
.(O   ノ ) ̄ ̄ ̄()__   )
 )_)_) (;;;;;;;;;;;;;;;;;;;)(_(


747 名前:login:Penguin mailto:sage [2010/03/24(水) 15:40:14 ID:8MgVQE42]
全角文字やTABなどを記号で表示するようにしておけば、
そうそう事故はないのでは?jaspace.elとか便利だよ。


748 名前:login:Penguin mailto:sage [2010/03/24(水) 15:52:39 ID:c/AsI/YT]
学習用のネタとかならともかくパッチを 2ch に貼んのはやめたほうがいいんじゃね
書き込み確認のとこに
投稿者は権利の何もかもを管理者に無償譲渡することを承諾しますみたいなこと書いてあるぜ

749 名前:login:Penguin mailto:sage [2010/03/24(水) 16:12:14 ID:o3qxm3DD]
どうしたんだ突然

750 名前:login:Penguin mailto:sage [2010/03/24(水) 18:28:22 ID:JGtYY8P/]
find -exec command {} +
はもっと知れ渡るべき
日経Linux

751 名前:login:Penguin mailto:sage [2010/03/24(水) 21:53:30 ID:LVpGQGYh]
xargsに慣れちゃって、手が勝手に打っちゃうんだよな

752 名前:login:Penguin mailto:sage [2010/03/25(木) 00:42:02 ID:AS83wWPj]
>>730
hww

753 名前:login:Penguin mailto:sage [2010/03/25(木) 05:46:35 ID:bk8Jf0RP]
ちゃんと理解しながら読んでいればインデントなんて枝葉末節。
自分のコードならばこだわるかも知れないけどね。



754 名前:login:Penguin [2010/03/25(木) 07:38:08 ID:woPIYugI]
>>728
UNIX板で知った
ttp://www.opengroup.org/onlinepubs/009695399/utilities/test.html
の、APPLICATION USAGE から先が勉強になったです。
-a や -o より && や || でつなぐ方がよいとか。お題の部分についてはこれ。
test "$1" = "bat" -a "$2" = "ball"
syntax errors occur if $1 evaluates to '(' or '!'.
One of the following forms prevents this; the third is preferred:
test "X$1" = "Xbat" -a "X$2" = "Xball"
test "$1" = "bat" && test "$2" = "ball"
test "X$1" = "Xbat" && test "X$2" = "Xball"

755 名前:login:Penguin mailto:sage [2010/03/25(木) 10:18:07 ID:Bu4gYkWT]
>>750
man find
したら、-exec command {} +の下に
-execdir command
とか
-execdir command {} +
とかを見つけた。勉強になった。

こういう事があると電子辞書より紙の辞書の方がいいかもと思う。







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<221KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef