BASHでのデフォルトパス設定の問題

BASHでのデフォルトパス設定の問題

私は与えられたコンパスプロジェクトを見るために単純なBASHスクリプトを開発しています。私のスクリプトは次のとおりです。

ユーザーにカスタムパスを入力するか、デフォルトを使用するオプションを提供したいと思いますhttp_path。現在のスクリプトを使用して、デフォルトのApacheディレクトリがある場所pathと同じ変数を設定する方法がわかりません。http_pathBASHスクリプトの方法を学ぶためのより良い提案やリソースがあれば共有してください!

メモ:このサイト、Google、stackoverflowで回答を検索しました。私の問題を解決できる人を見つけたら教えてください!

#!/bin/bash
# This script will watch a given compass project
http_path=/var/www/

echo -n "Enter in a new path and press. To use the default path $http_path press [ENTER] twice"

while read path; do
    if [ -z "${path}" ]; then
        clear  
        # these two lines enable the script to work if I do not
        # I do not prompt for default path. It's been tested and works
        # echo "That was empty, do it again!"
        # echo -n "Enter in a compass project directory and press [ENTER]"
        echo "Are you sure you would like to use the default path? Press [ENTER] to continue..."
        $path=$http_path
    else
        echo "Checking now..."
        break
    fi
done

echo -n "Enter in a project to watch and prss [ENTER]"

while read project; do
    if [ -z "${project}" ]; then
        clear  
        echo "That was empty, do it again!"
        echo -n "Enter in a compass project name and press [ENTER]"
    else
        echo "Checking now..."
        break
    fi
done

echo "Watching" $project "project in directory" $path
echo "To exit project press Command/Control + C"

cd $path
compass watch $project

トラブルシューティング方法を見るここ

ベストアンサー1

値を割り当てるときは、最初のwhileループから先行記号をpath省略します。$

あなたがしなければならないことは:ですpath=$http_path

編集する

Bashを学ぶには、リソースも必要であることを投稿した後に気づきました。個人的に見る高度なバッシュスクリプトガイド役に立つ私の記憶が正しければ、ちょっと古いですが、適当です。フリーノード(Freenode)も#bash良い場所です。彼らは常に最も親切ではありませんが、確かに知識が豊富です。

また、コマンドラインで何かをテストすることを恐れないでください。これは対話型インタプリタです(RubyまたはPythonプログラミングを実行した場合)。

編集2

実際の問題は、ユーザーがEnterキーを押してもループを終了しないことです。したがって、コードを次のように変更する必要があります。

while read path; do
    if [ -z "${path}" ]; then
        clear
        echo "Are you sure you would like to ..."
        read prompt
        if [ -n "${prompt}" ] ; then
            continue
        fi
        path=$http_path
        break
    else
        # etc.
    fi
done

おすすめ記事