1

このスクリプトを使用して、「すべての」サブディレクトリを除いて、「サイト」ディレクトリの各サブディレクトリ内でコマンドを実行しています。ただし、これを実行すると、if ステートメントを使用して除外しているにもかかわらず、「all」サブディレクトリがまだ使用されています。

for dir in ~/htdocs/drupal/drupal/sites/*
  do
  if [ $dir = "/local/users/drupadm/htdocs/drupal/drupal/all" ]
    then
    continue
  fi
echo $dir
(cd $dir && /opt/webstack/php/5.2/bin/php /local/users/drupadm/drush/drush.php $1)
done

ブライアン

4

4 に答える 4

7

sitesサブディレクトリを省略しました:

if [ "$dir" = /local/users/drupadm/htdocs/drupal/drupal/sites/all ]
于 2013-01-10T01:08:33.140 に答える
0
IFS=$'\n'
for dir in `find ~/htdocs/drupal/drupal/sites/ -maxdepth 1 -type d ! -name all -printf '%p\n'`
do
    echo $dir
    (cd $dir && /opt/webstack/php/5.2/bin/php /local/users/drupadm/drush/drush.php $1)
done
IFS=' '

最初にそのディレクトリを除外し、find !を使用します。

それはによって呼び出されます

find dir_name [tests...]

私のコマンドで使用されるテスト:

-maxdepth 1

直系の子供の...

-type d

... ディレクトリを検索 ...

! -name all

...「すべて」という名前ではありません。

于 2013-01-10T01:09:03.527 に答える
-1

こんにちは、次のことを行う必要があります

if [ $dir == "/local/users/drupadm/htdocs/drupal/drupal/all" ]

ありがとう

于 2013-01-10T01:10:54.563 に答える
-1

$dir を引用符で囲んでみてください。名前にスペースが含まれるディレクトリを削除すると、問題が発生します。また、呼び出し時に -vx スイッチを使用してスクリプトを実行し、読み込まれた内容と実行された内容を確認することもできます。bash -vx my script または set -vx 何でも。

于 2013-01-10T01:19:19.177 に答える