私は与えられたコンパスプロジェクトを見るために単純なBASHスクリプトを開発しています。私のスクリプトは次のとおりです。
ユーザーにカスタムパスを入力するか、デフォルトを使用するオプションを提供したいと思いますhttp_path
。現在のスクリプトを使用して、デフォルトのApacheディレクトリがある場所path
と同じ変数を設定する方法がわかりません。http_path
BASHスクリプトの方法を学ぶためのより良い提案やリソースがあれば共有してください!
メモ:このサイト、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