![]() |
|
|
Googleのunix.com
|
|||||||
| シェルプログラミングとスクリプティング KSH 、 CSH 、 shに、 bashの、はPerl 、 PHPは、削除するsed 、 Awkの、他のシェルスクリプトやシェルスクリプト言語についての質問の投稿はこちら。 |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| ループの問題解決のために | mdap | シェルプログラミングとスクリプティング | 3 | 2008年8月16日 02:27午後 |
| ループ問題 | namishtiwari | UNIXのダミー質問と回答のため | 4 | 2008年7月15日 12:01午後 |
| awkは、ループの問題 | invinzin21 | シェルプログラミングとスクリプティング | 3 | 2008年2月4日 09:54午後 |
| ループ問題 | dhananjaysk | シェルプログラミングとスクリプティング | 3 | 2006年3月31日 02:05午後 |
| 問題whileループ | mridula | 高レベルのプログラミング | 1 | 2005年12月11日 11:44午前 |
![]() |
|
|
LinkBack | スレッドツール | このスレッドを検索 | スレッドを評価 | 表示モード |
|
|
|
||||
|
こんにちはすべて
私は、ファイルから、いくつかのもの"は/ var / www / htmlの"を/ var / WWWの" /例"などを使用するときは、このū echo.iで一人一人一人に合格するような表示にいくつかのことですgrepingの/ var / www / htmlの第2回とし、スタートして1つのループprocessing.Like しかし、それはどのiead動作していないどうすれば1つの値が1を与える。 マイコード docroot \u003d $ (等はgrep - hでDocumentRootを/のhttpd / conf.d / *. confに| awkは- F 'を' ' ( ) ' $ 3印刷/ |ソート- ū | uniq ) doccount \u003d $ (等はgrep - hでDocumentRootを/のhttpd / conf.d / *. confに| awkは- F 'を' ' ( ) ' $ 3印刷/ |ソート- ū | uniq |トイレ- l )の ( ( ⅰ \u003d 0 ;のi < \u003d $ doccount ; + + 1 ) ) する confd \u003d " $ docroot \ Ñ " $ confdエコー エ-パーマ/ Oの\u003d $ confdワットタイプを見つける|中大和総研を読む する いくつかのことをする # #は、実行完了 # #実行を行う |
|
||||
|
返事のおかげで、されていないときに変数$ confdをループ内で1つの値を渡すことを意味し、私の代わりにすべてのドキュメントをオンラインで検討root.Iと、それを処理せず、自分のコードが表示staticelly場合を使用して実行を/ var / www / htmlの出力が良いときに
ループ問題occourced.Iの両方の出力が表示されます。 コード:
#!/bin/bash
let test=0
abc="/var/www/html"
docroot=$(grep -H DocumentRoot /etc/httpd/conf.d/*.conf | awk -F' ' '{ print $3 }'| sort -u | uniq)
doccount=$(grep -H DocumentRoot /etc/httpd/conf.d/*.conf | awk -F' ' '{ print $3 }'| sort -u | uniq | wc -l)
#i=0
#while [ $i -le $doccount ]
# do
# confd="$docroot\n"
#echo $confd
find $abc -type d -perm /o=w | while read DIR
do
test=$(cd "$DIR"; ls -A *.html *.php 2>/dev/null | wc -l)
if [ "$test" != "0" ]
then
echo "DIR Found WITH FILES"$DIR $test
fi
if [ `ls -a "$DIR" | wc -l` -le 2 ]
then
echo "Writable_dir Empty"$DIR
fi
done
#i=$(( $i + 1 ))
#done
count=$(find /var/www/html/ -type f -perm /o=w | grep -i ".htaccess"| wc -l )
find "$abc" -type f -perm /o=w | grep -i ".htaccess" | awk -F. '{ print $1 }' | while read this
do
echo "_htaccess_is_Writable"$this
done
Output with static docroot
DIR Found WITH FILES/var/www/html/test3 4
DIR Found WITH FILES/var/www/html/test3/abc 2
Writable_dir Empty/var/www/html/abc
DIR Found WITH FILES/var/www/html/test/abc 1
DIR Found WITH FILES/var/www/html/test2 1
Output with duynamic Docroot
"/var/www/html" "/var/www/test/www.example.com" "/var/www/www.example.com"\n
find: "/var/www: No such file or directory
find: "/var/www/test: No such file or directory
find: "/var/www: No such file or directory
"/var/www/html" "/var/www/test/www.example.com" "/var/www/www.example.com"\n
find: "/var/www: No such file or directory
find: "/var/www/test: No such file or directory
|
|
|||||
|
あなたのコードのほとんどはあなたのdocrootに、複数のディレクトリを割り当てると、改行を追加することに間違っている。新ラインの必要はありません。 $ "をconfd "しない" docroot \ Ñ " $ docrootを設定します。 $検索を行うときにはコマンドラインで改行が属していないconfdを配置します。
#中[ $のi -ル$ doccount ] #行う # \ Ñ " docroot \u003d " $ confd # $ confdエコー confd \u003d " $ docroot " エ-パーマ/ Oの\u003d $ confdワットタイプを見つける|中大和総研を読む になるだろう 見つけるの/ var / www / htmlのを/ var / www /のテスト/ www.example.comを/ var / www /のwww.example.com -タイプd -パーマ/ Oの\u003dワット|中大和総研を読む |