2010-04-28 3 views
0

내 로컬 개발 서버를 시작하는 단일 별칭 (ts)을 원합니다. 스크립트는 3000에서 시작하는 열린 포트를 테스트하고 사용 가능한 첫 번째 포트를 사용해야합니다. 또한 일부 사이트에는 -R config.ru가 필요하도록 랙 업 파일이 필요합니다. 이 스크립트는 config.ru 파일의 현재 디렉토리를 확인하고 별칭에 추가합니다 (있는 경우). 자주bash 용 포트 별칭을 사용하여 지능형 가상 시작

alias ts="thin -R config.ru -p 3000 start" 

, 난 다른 사이트를 테스트하기 위해 여러 서버를 실행해야합니다, 그래서 추가 별칭을 만든 :

현재 내 로컬 개발 환경을 시작, 내가 실행

alias ts1="thin -R config.ru -p 3001 start" 

답변

1

글쎄, 뭔가 똑똑한 일을 할 수 있고 이미 netstat 명령과 같은 명령을 사용하여 어떤 포트가 바인딩되어 있는지 확인할 수있다.

netstat -anp | grep LISTEN | awk '{print $4}' | sed s/".*:"//g | sort -n -u 

하지만 당신은 추한 콘솔 스팸 걱정하지 않는 경우이

for ((port=3000; port <= 3010 ; port++)); do 
    if thin -p $port start; then break; fi 
done 
당신은 명령과`if`을 결합 할 수 있습니다
+0

같은 하나 얻을 때까지 당신은 단지 포트를 계속 시도 할 수 있습니다 :'경우 얇은 -p의 $ 포트를 시작 2>/dev/null; 다음 휴식. fi' –

+0

니스, 고마워! 그에 따라 업데이트되었습니다. –