2019. 7. 16. 14:49

Subversion 에서 directory 이름을 바꿀 때,

폴더 명칭을 바꾸려고, tortoisesvn 에서의 rename 이나 svn mv 명령으로 하여도 오류가 발생하였다.

이를 해결하는 방법은 --parents 옵션을 사용하는 것이다.

> svn mv A B

svn: E720005: Can't move .....

>

> svn mv --parents A B

OK

간단하게 해결될 것을...

2018. 4. 28. 10:19

When gnu screen is used in serial console, adjust windows size

serial console을 사용할 때, screen에서 화면 크기 적용


터미널 에뮬레이터를 사용해서, 원격 접속해서 사용할 때, screen 프로그램을 사용하면 편리하다.

특히, serial console 을 사용할 때 screen을 사용한다면 더욱 더 큰 힘이 된다.

그런데, 에뮬레이터의 창의 크기를 바꾸었는데, screen에서 이를 인식하지 못하였다...난감.

ssh 나 telnet을 사용할 때는 자동으로 인식하였는데....

찾아보았는데,,, 이런 방법이 있다고 한다.

https://cafbit.com/post/terminal_window_size_detection_over/

대단하다. 어찌알고,,,,

마지막 문구에 힌트를 얻어서 한가지 더 시도해 보았다.... 정말 간단하게 해결되었다.

screen을 수행하기 전에 $ resize 명령을 수행하면 적용이 되었다.


root@linux ~$ resize

COLUMNS=160;LINES=52;export COLUMNS LINES;

root@linux ~$ screen


두개의 변수가 필요했나 보다...

난 여기까지 오는데, 무려 6개월 걸렸다.


다른 분들은 도움이 되시길..



2018. 4. 1. 21:13

validate ip address in bash


Linux의 bash shell script을 작성하는데, ip addresss를 입력받는 부분을 작성 중이다.

입력 받은 주소의 적합성을 검사하려고 하는데, 생각보다 간단하지 않았다.


최종 완성된 코드를 올리니, 참고하시라... (귀찮아서 설명을 하지 않음을 이해해 주세요)

#!/bin/bash


function is_number()

{

local src=$1

local stat=1

tdst=`expr $src + 1` 2> /dev/null

stat=$?

return $stat

}


function validate_ip()

{

    local  lip=$1

    local  stat=255

local renumexp='^[0-9]+$'

    if [[ $lip != ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then

        OIFS=$IFS

        IFS='.'

        sip=($lip)

        IFS=$OIFS


printf "0: %s\n" ${sip[0]}

printf "1: %s\n" ${sip[1]}

printf "2: %s\n" ${sip[2]}

printf "3: %s\n" ${sip[3]}


stat=0


vip=${sip[0]}

if [ $stat -eq 0 ] ; then

is_number $vip 2> /dev/null

if [ $? -eq 0 ] ; then

if [[ $vip -gt 255 ]] ; then

stat=1

fi

else

# not number

stat=11

fi

fi


vip=${sip[1]}

if [ $stat -eq 0 ] ; then

is_number $vip 2> /dev/null

if [ $? -eq 0 ] ; then

if [[ $vip -gt 255 ]] ; then

stat=2

fi

else

# not number

stat=12

fi

fi


vip=${sip[2]}

if [ $stat -eq 0 ] ; then

is_number $vip 2> /dev/null

if [ $? -eq 0 ] ; then

if [[ $vip -gt 255 ]] ; then

stat=3

fi

else

# not number

stat=13

fi

fi


vip=${sip[3]}

if [ $stat -eq 0 ] ; then

is_number $vip 2> /dev/null

if [ $? -eq 0 ] ; then

if [[ $vip -gt 255 ]] ; then

stat=4

fi

else

# not number

stat=14

fi

fi

    fi

    return $stat

}



read ip


if validate_ip $ip; then

  echo "success ($ip)"

  exit 0

else

  echo "fail ($ip)"

  exit 1

fi



참고 사이트는

1. validate ip

https://unix.stackexchange.com/questions/111841/regular-expression-in-bash-to-validate-ip-address

https://stackoverflow.com/questions/13777387/check-for-ip-validity


2. check number

https://stackoverflow.com/questions/806906/how-do-i-test-if-a-variable-is-a-number-in-bash

https://www.unix.com/shell-programming-and-scripting/21668-how-check-whether-string-number-not.html


이다.