csh 스크립트를 정리하다가. 발견한 사실.. (이미 오래전에 적었을지도 모르지만.. ^^;;)

 

#!/bin/csh

 wget -O serverStatusLog 'http://127.0.0.1/server-status?auto';
cat serverStatusLog | awk -F: '{ print $2 }' > statusCurrent

set current=(`cat statusCurrent`)

 

csh에서의 ( ) 마크는 bash 에서는 다르게 해석한다고 말했는데..  

csh에서는 개행문자뿐 아니라 사이띄기도 ( )를 이용하면 배열로 만들 수 있는데 반해서

bash에서는 오직 개행문자만 배열로 만들 수 있다.

 

만약 개행문자로 나눌 수 있는 값이면, 아래처럼 그래도 쓸 수 있다.

 

#!/bin/csh

 wget -O serverStatusLog 'http://127.0.0.1/server-status?auto';
cat serverStatusLog | awk -F: '{ print $2 }' > nstatusCurrent

current=(`cat nstatusCurrent`)

 

그러나, 스페이로 이루어질 때는 tr을 이용해서 배열로 만들면 된다.

 

#!/bin/csh

 wget -O serverStatusLog 'http://127.0.0.1/server-status?auto';
cat serverStatusLog | awk -F: '{ print $2 }' > nstatusCurrent

current=`echo nstatusCurrent | tr ' ' ' '`

 

 

Posted by '김용환'
,