나는 주어진 나침반 프로젝트를 보기 위해 간단한 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를 배우려면 리소스도 필요하다는 것을 게시한 후에 깨달았습니다. 개인적으로 찾아보니고급 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