3

最初に言いたいのは、何を探すべきかよくわからないということです。ここではスタック オーバーフローで、私の問題に対する適切なクエリは何でしょうか。

簡単に言えば、新しいディレクトリを作成し、その中でいくつかのファイル操作を行いたいと考えています。しかし、作成したスクリプトを使用すると、ディレクトリではなく常にファイルを取得できます。コードをどのように組み合わせるかに関係なく、常に同じ結果が得られるようです。たくさんの人が彼らの知識で私を助けてくれることを願っています。

スクリプトは次のとおりです。

#!/bin/bash

 DLURL=http://drubuntu.googlecode.com/git'
 d7dir=/var/www/d7/'
 dfsettings=/var/www/d7/sites/default/default.settings.php
 settings=/var/www/d7/sites/default/settings.php

#settiing up drush
drush -y dl drush --destination=/usr/share;  

#Download and set up drupal
cd /var/www/;
drush -y dl drupal;

mkdir "$d7dir"; #this is the line that always produces a file instead a directory
                # regardless if it is replaced by the variable or entered as         
                # /var/www/d7


cd /var/www/drup*;
cp .htaccess .gitignore "$d7dir";
cp -r * "$d7dir";
cd "$d7dir";

rm -r /var/www/drup*;
mkdir "$d7dir"sites/default/files; 
chmod 777 "$d7dir"sites/default/files;  
cp "$dfsettings" "$settings";
chmod 777 "$settings";
chown $username:www-data /var/www/d7/.htaccess;
wget -O $d7dir"setupsite $DLURL/scripts/setupsite.sh; >  /dev/null 2>&1
chmod +x /var/www/setupsite; 
echo "Login Details following..."; 
read -sn 1 -p "Press any key to continue...";
bash "$d7dir"setupsite;
chown -Rh $username:www-data /var/www;
chmod 644 $d7dir".htaccess;
chmod 644"$settings";
chmod 644"$dfsettings"; 
exit

誰かがその理由を理解してくれることを願っています。

4

1 に答える 1

1

シェルスクリプトをデバッグする方法はたくさんあります。

  • set -x最初のスクリプトを追加します
  • 戻り値を取得します。

    mkdir 'the-directory'
    ret=$?
    if test $ret -eq 0; then
        echo 'Create success.'
    else
        echo 'Failed to create.'
    fi
    
  • 詳細モードに設定$ mkdir -v 'the-directory'

$ type mkdirmkdirコマンドを確認するには、このコマンドを試してください。

于 2013-08-17T18:25:52.003 に答える