2013년 12월 30일 월요일

javascript null,undefined, empty 체크 방법

if( value ) {

}

그냥 위와 같이 쓰면 됨.

아래의 값이 아닐 경우 true 라고 함.
null
undefined
NaN
empty string ("")
0
false

출처
출처2

 
// 4.1.1
// 배열에 뭔가가 들어있는지 여부를 확인하려는 거라면,
// 다음과 같이 코드를 작성하는 대신에:
if ( array.length > 0 ) ...

// 다음과 같이 작성하세요:
if ( array.length ) ...

// 4.1.2
// 배열이 비어있다는 것만을 확인할 때에는,
// 아래처럼 작성하지 마시고:
if ( array.length === 0 ) ...

// ...다음처럼 작성하세요:
if ( !array.length ) ...

// 4.1.3
// 문자열이 비어있지 않다는 것을 확인할 때에는,
// 다음처럼 작성하지 마시고:
if ( string !== "" ) ...

// ...다음과 같이 작성하세요:
if ( string ) ...

// 4.1.4
// 문자열이 _비어있다는 것_을 확인만 하는 경우라면,
// 다음처럼 작성하지 마시고:
if ( string === "" ) ...

// ...다음과 같이 작성해서, 거짓인지를 확인하세요. :
if ( !string ) ...

// 4.1.5
// 참조 변수가 true인지 확인하려면,
// 다음처럼 작성하지 마시고:
if ( foo === true ) ...

// ...그냥 아래처럼 써주세요. 기본 기능을 활용하면 됩니다:
if ( foo ) ...

// 4.1.6
// 어떤 참조 변수가 false인지 판정할 때에는,
// 다음처럼 작성하지 마시고:
if ( foo === false ) ...

// ...true인지를 확인하도록 부정(!)을 사용하세요.
if ( !foo ) ...

// ...주의하세요. 이렇게 제안하면 foo의 값이 0, “”, null, undefined, NaN인 경우에도 참을 반환할 겁니다.
// foo가 불린값 false를 갖는지를 확인하는 경우라면, 아래와 같이 사용하세요.
if ( foo === false ) ...

// 4.1.7
// 어떤 변수가 있다고 하죠. 이 변수의 값은 null이나 undefined일 수는 있지만 false나 "", 또는 0의 값은 가지지 않습니다. 이런 변수를 판정할 때에는,
// 아래처럼 작성하지 마시고:
if ( foo === null || foo === undefined ) ...

// ...강제형변환되는 ==를 사용하세요. 다음과 같이요:
if ( foo == null ) ...

// 그리고 이 점을 기억하세요. == 를 사용하면, 판정하려는 변수의 값이 `null` 이나 `undefined` 일 때, 참을 반환할 것입니다.
// 하지만 `false` 나 "" 나 0 값을 가질 때에는 거짓을 반환할 것입니다.
null == undefined

 

 

https://github.com/EngForDev/idiomatic.js/tree/ko/translations/ko_KR

2013년 12월 18일 수요일

운전면허 취득일 계산법

면허 번호의 앞 두자리 + 적성검사기간의 앞부분의 월일

 

예를 들어
내 운전면허 정보가 아래와 같다면
강원 04-111111-11
적성검사기간 2018.02.01 ~ 2018.06.28

나의 발급일자(취득일자)는 2004.02.01 이다.

2013년 11월 22일 금요일

Uncaught ReferenceError: 변수 is not defined

Uncaught ReferenceError: 변수 is not defined

크롬에서 볼 때 위와 같은 에러 발생.

예전에 스크립트의 위치를 변경하여 해결 한 적이 있어서 이리저리 위치를 바꿔보고,
jquery 의 ready 안에도 넣어보고 해도 안됨.

문제는 위의 '변수' 부분을 외부 소스를 가져온 부분에 정의 되어 있었는데, 이걸 못 불러온것임.

위치는 제대로 되어 있는 데, 왜 못 불러 올까 한참 찾다보니 현재 접속한 페이지의 url이 https 인데,

자바스크립트를 http로 불러올려고 하면 못 불러옴.

예를 들어 현재 작업 중인 페이지가 https://www.naver.com/test.html 이다. 라고 한다면 자바스크립트 외부 소스를 불러오는 것도

<script type="text/javascript" src="https://www.test.com/test.js"></script>

위와 같이 같이 https로 맞춰주면 제대로 동작한다.

 

아래와 같이 동적으로 치리 해도 됨.
<script language='javascript'>
var targetDomain = 'maps.google.com/maps/api/js?sensor=true';
var targetURL = location.protocol=="https:"?"https://"+targetDomain:"http://"+targetDomain;
document.writeln("<scr"+"ipt language='javascript' src='"+targetURL+"'></scr"+"ipt>");

</script>

2013년 11월 5일 화요일

하드디스크 크기

Small Form Factor SFF(2.5인치-6.35cm)
Large Form Factor LFF(3.5인치-8.89cm)

2013년 10월 10일 목요일

안드로이드 내장 브라우져 iframe 다운로드 문제

iframe 으로 불러온 페이지의 다운로드 링크를 안드로이드 내장 브라우저에서만 다운 받지 못하는 문제가 있다.

헤더값을 변경해 보고, 다운로드 프로그램으로 만들어서 넣어 봐도 다운이 안된다.


구글신이 말씀하시길 target="_blank" 를 넣어 보거라.

구글신님~ 감사합니다~






Android browser won't download pdf file

2013년 9월 26일 목요일

tomcat http를 https 로 redirect

web.xml 파일에 </web-app> 태그 마지막 부분에 추가
<!-- Automatisch alle requests redirecten naar https -->
<security-constraint>
<web-resource-collection>
<web-resource-name>Automatic SSL Forward</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>
CONFIDENTIAL
</transport-guarantee>
</user-data-constraint>
</security-constraint>

출처 : http://sysengineers.wordpress.com/2011/03/16/tomcat-automatic-redirect-https/

2013년 9월 17일 화요일

리눅스 시스템 환경변수파일 읽는 순서

시스템 환경변수파일 읽는 순서

etc/rc.d/rc.sysinit

/etc/rc.d/rcN.d # N은 0-6 사이.
/etc/rc.d/rc.local
/etc/profile
/etc/profile.d/*
/etc/bashrc
$HOME/.bash_profile 
$HOME/.bashrc


 

출처:http://onecellboy.tistory.com/220

2013년 9월 11일 수요일

CreateProcess error=2

외부 프로그램시 아래의 에러 발생.

CreateProcess error=2 파일이나 디렉토리 경로가 틀렸을때 나는 에러.

 

java.io.IOException: Cannot run program " C:\JavaDE\WebStie\someProgram.exe": CreateProcess error=2, ??d?? Æ???; ?; ¼? ¾ø

 

대충 보면 모르는데, 저기 C: 시작하는 부분 앞에 스페이스가 들어가 있음.

스페이스가 들어가면 안됨.

윈도우 2012 FTP 방화벽 설정

FTP 셋팅 완료, 기존 방화벽에 FTP 가 오픈 되어 있어도

FTP 를 재시작 안 해주면 처리가 안된다.

 

shell> net stop ftpsvc
shell> net start ftpsvc

 

출처: http://dongkuk.tistory.com/29

2013년 9월 7일 토요일

네트워크 드라이브 문제

같은 네트워크가 아닌 곳에서 네트워크 드라이브를 잡으려고 하면 아래의 에러가 발생.

시스템 오류 53이(가) 생겼습니다. 네트워크 경로를 찾지 못했습니다.
시스템 오류 67이 발생했습니다. 네트워크 이름을 찾을 수 없습니다.

ISP 업체에 확인 해보니 네트워크드라이브에서 사용되는 포트를 차단 했다고 함.

결론은 ISP 라우터를 통해 밖으로 나가면 안됨.

출처

some characters cannot be mapped using euc-kr character encoding

Select First Character를 눌러 해당 위치를 찾아봤다.
한글사이의 스페이스(빈칸)가 문제.
스페이스만 지우고 했더니, 정상저장.

2013년 9월 3일 화요일

윈도우 snmp 보안 탭이 안 보이는 경우

서버 2012 설치 후 snmp 설치,

snmp 서비스 속성에서 커뮤니티를 입력하려고 하였으나, 보안탭이 안보임.

여기에서 해결법을 찾음.

 

서버관리자 -> 기능 추가 에서

원격 서버 관리 도구
기능 관리 도구
SNMP 도구 << 이거 설치

2013년 8월 30일 금요일

파일을 찾을 수 없음 경로/admin/dr0ulib.sql.sbs

오라클 홈페이지에서 오라클 12c를 다운받고

윈도우에서 오라클 설치시 아래와 같은 에러가 나온다.
파일을 찾을 수 없음 ...경로/admin/dr0ulib.sql.sbs

한글 문서는 찾을 수 없고 여기에서 다운로드를 다시 받으라고 해서 다시 받아서 설치 했으나

역시 같은 문제 발생.

원인은 아주 간단한 거였다.

오라클 홈페이지에서 다운 받는 파일은 대부분 winx64_12c_database_1of2.zip,winx64_12c_database_2of2.zip 같이

두개의 압축 파일이다.

해당 파일을 각 각 압축을 풀면, database 라는 한개의 폴더가 있는 데

이 두개의 폴더를 한개로 합쳐고 나서 설치를 진행 해야 한다.

ㅎㄷㄷ;

2013년 8월 14일 수요일

windows 에서 특정 port 사용하는 process 확인하기

1. 8080 port 의 PID 확인

C:\>netstat -ano | find "8080"
=> 해당 포트가 사용중이지 않을 경우에는 아무값도 나오지 않는다.
=> 해당 포트가 사용중일 경우에는 아래와 같이 나온다.
TCP 0.0.0:4899 0.0.0.0:0 LISTENING 2952

2. PID 가 2952 인 프로세스 찾기

C:\>tasklist /FI "PID eq 2952"

이미지 이름                   PID    세션 이름           세션#    메모리 사용
==================== ======= =============== ======= ============
javaw.exe                   2952    Console                 0      44,512 K

3. 해당 포트 프로세스를 중지하기 (task kill)

C:\> for /f "tokens=5" %p in (' netstat -ano ^| find ":8080" ') do taskkill /F /PID %p

*** 해당 포트를 사용하는 프로세스를 직접 확인 하는 방법 (task list)

C:\> for /f "tokens=5" %p in (' netstat -ano ^| find ":8080" ') do tasklist /FI "PID eq %p"

 

---------------------

C:\>netstat -ano | findstr PORTNUMBER

C:\>tasklist | findstr PID

---------------------

 

 

출처 : http://iceken.egloos.com/4327131

http://mainia.tistory.com/642

2013년 8월 3일 토요일

CHECKOUT can only be performed on a version resource [at this time]

 

Some of selected resources were not committed.
Some of selected resources were not committed.
svn: E200007: Commit failed (details follow):

svn: E200007: Commit failed (details follow):
svn: E200007: CHECKOUT can only be performed on a version resource [at this time].

 

원인은 확실한 건지는 모르겠지만, SVNKit 문제라고 한다.

 

cleanup 으로 해결;;

2013년 7월 11일 목요일

2013년 7월 5일 금요일

원격데스크탑 복사가 되지 않을 때.

1. RDP 버젼이 5.x 면 안된다. 6.x 여야 가능. 터미널 서비스 구성의 서버 구성 연결 형식 탭에서 확인 가능.

2. RDP 버젼이 5.x 이면 드라이브 매핑 기능을 활성화 하여 사용할 수 있다.

3. 원격데스크탑에서 클립보드 체크가 안되어 있다.

4. 서버에서 터미널 서비스 구성 . RDP-Tcp 속성 -> 클라이언트 설정에서 다음을 사용하지 않음에 클립보드가 체크되어 있다.

5. rdpclip 프로세스가 제대로 동작하지 않는다. rdpclip 프로세스를 강제 종료하고, 재시작.

 

ps.그래도 안되는 경우가 있음.. 뭐지;;

100M 이상 파일 찾기(/home 제외)

find / ! \( -path '/home' -prune \) -size +100M -exec ls -l {} \;


오래된 버젼은 100M 지원 안함. 이렇게 변경 =>

find / ! \( -path '/home' -prune \) -size +102400k -exec ls -l {} \;

2013년 7월 2일 화요일

pdns 설치

DB 기반 DNS 서버를 찾다가 mydns와 pdns 를 찾았다.

뭐를 설치해서 사용할 까 고민했다.

아주오래된 2004년도에 조사된 dns server 점유율 조사에서는 대략 1% 차이로 mydns가 좀 더 높다.

웹쪽 인터페이스는 mydns 는 mydnsconfig, pdns는 poweradmin 이 대표적이였다.

딱 보니까 mydns 쪽 인터페이스가 좀더 나아서 mydns 를 설치 할까 싶었는데, 결정적으로 mydns는

2006년 1월18일 이후 업데이트가 없다.

powerdns 는 2013년 6월 7일자 까지 업데이트가 나와있다.

powerdns 선택~

설치는 여기 대로 했더니, 별로 어렵지 않았다.

간단한 테스트도 맞쳤는데, 잘 응답된다.

근데 poweradmin 이 좀 구리구리하다;;

다른 건 없나 뒤지다 소스포지에서  괜찮은 거 발견.

무려 윈도우에서 직접 pdns를 컨트롤 할 수 있게 해주는 프로그램으로 winPowerDns Control

로컬에서 서버쪽 mysql에 접속해서 컨트롤 하는 프로그램 같다.

mysql에서 접속할 아이피를 열어줘야 됨.
GRANT ALL ON powerdns.* TO 'power_admin'@'xxx.xxx.xxx.xxx';

아직 베타버젼인데 인터페이스도 나쁘지 않고 윈7에서도 잘 동작한다.

bind에서 갈아 타야 겠다.

2013년 6월 5일 수요일

Service Unavailable

Service Unavailable 오류 발생 index.html 도 접근 안됨.
로그 확인 결과 2013-06-04 07:34:55 192.xxx.xxx.xxx 62907 xxx.xxx.xxx.xxx 80 HTTP/1.1 GET /favicon.ico 503 1 Disabled DefaultAppPool

위와 같이 나옴

응용 프로그램 풀에서 DefaultAppPool 를 오른 쪽 클릭 후 시작 함.

2013년 5월 22일 수요일

레이드 설정된 시스템에 하드디스크 추가.

레이드 설정된 시스템에는 /dev/sdb1 같은 파티션이 없다.
대신 /dev/mapper/ 에 등록 되었다.

============================

레이드 확인명령
dmraid -r

============================

처리 방식은 기존과 같다.
fdisk /dev/mapper/ddf1_---

파티션 생성하면 p1이 붙은 새파일이 생긴다.
mkfs.ext4 /dev/mapper/ddf1_---p1

포맷후 마운트 하면됨.
mount /dev/mapper/ddf1_---p1 /tmp

============================

fstab에 uuid 로 등록하기

uuid 확인법
[root@webbackup superoz]# blkid /dev/mapper/ddf1---
/dev/mapper/ddf1_---: UUID="12314412-12312-212321-2142-24324e43" TYPE="ext4"

위의 UUID로 fstab에 등록

UUID=12314412-12312-212321-2142-24324e43 /tmp ext4 defaults 1 2

 

 

참고: http://mbroz.fedorapeople.org/talks/DeviceMapperBasics/dm.pdf

2013년 5월 9일 목요일

자꾸 헷갈리는 DNS 마스터,슬레이브 개념 정리~

마스터와 슬레이브로 2개 등록시 RTT에 의해 라운드로빈으로 분산된다.

문제는 마스터 서버가 다운시에는 SOA 레코더의 expire 시간동안만 slave 가 동작한다는 사실~

그래서 결국에는 문제가 생긴다고 한다.

 

출처:http://cafe.naver.com/dnspro/22279

2013년 3월 19일 화요일

자바스크립트 중복 제거 함수.

var a=[];
while(a.length <3) {
var n = Math.round(Math.random() * 20);
if (a.indexOf(n)==-1) a.push(n);
}

출처:http://stackoverflow.com/a/5740725

2013년 2월 23일 토요일

geopoint cannot be resolved to a type 해결책

1. 이클립스 프로젝트에서 오른쪽 클릭.

2. Properties -> Android 선택

3. Build Target 에서 Google API 를 선택한다.

 

번외로 dalvik.system.vmruntime cannot be resolved to a type 오류 발생시

플래폼 버젼을 내려준다. 2.2로 하니까 해결 됬음.

2013년 2월 4일 월요일

윈도우 톰캣 ROOT 네트워크 드라이브

윈도우에서 톰캣을 사용중에 있다.

서버 a 와 서버 b 가 있다.

서버 a에는 톰캣이 있고,  컨텐츠가 있다.

서버 b에는 톰캣이 있고, 컨텐츠가 없다.

서버b에서는 네트워크 드라이브를 통해서 서버 a의 컨텐츠를 가져 다 써야 한다.

서버a의 ROOT 위치는 webapps/ROOT, ROOT 드라이브를 공유했다.

네트워크 드라이브를 잡자.
net use X: \\tbittpcont1\root password /user:userid

server.xml 내용
      <Host name="localhost"  appBase=""
unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="\\netbios\root" reloadable="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" resolveHosts="false"/>
</Host>

이게 중요한데, 네트워크 드라이브를 NETBIOS 로 지정 해 줘야 한다.

출처

ps. 진짜 해결 하고 나니 별거 아닌데, 장장 3일이나 걸쳐서 처리 했다.

2013년 2월 2일 토요일

SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-apr-443"]

SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-apr-443"]

윈도우 톰캣 이관시 ssl keyfile 문제 발생.

기존 서버
윈도우 2008
톰캣 버젼 : 7.0.14
자바 버젼 : 1.6.0_25

이관 서버
윈도우 2008 R2 64bit
톰캣 버젼 : 7.0.35
자바 버젼 : 1.7.0_11

처음에는 ssl key 파일이 64비트로 만들어 져서 그런건가 했더니, 아닌 것 같다.
다음과 같이 server.xml 을 변경하여 해결.


<Connector port="8443" 
protocol="org.apache.coyote.http11.Http11Protocol"
SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="C:\keystore\.keystore"
keystorePass="changeit"
clientAuth="false"
sslProtocol="TLS" />


기존의 protocol "HTTP/1.1" 를 "org.apache.coyote.http11.Http11Protocol" 로 바꿔 줌.

출처

2013년 2월 1일 금요일

asp.net 일정기간 지난 디렉토리 삭제.

CreationTime 이란 값으로 가져온 걸 뿌려 봤더니, 2013-01-31 오후 3:11:42 << 이런 형식으로 나온다.

이걸 어떻게 비교 하나 검색해보니 아래와 같이 비교 하더라.

출처:http://stackoverflow.com/questions/2222348/how-to-delete-files-older-than-3-months-old-in-a-directory-using-net

http://msdn.microsoft.com/ko-kr/library/system.io.directoryinfo.aspx
            //string dirName = "c:\\Temp";
string dirName = "c:\\tmp";

// C: 루트 디렉토리 정보를 가져옴
DirectoryInfo dInfo = new DirectoryInfo(dirName);

// 하위 FileInfo(파일정보) 배열을 받아옴
FileInfo[] fInfoSub = dInfo.GetFiles();

// 하위 DirectoryInfo(디렉토리정보) 배열을 받아옴
DirectoryInfo[] dInfoSub = dInfo.GetDirectories();

Response.Write(dInfo.FullName);
Response.Write("<br/>");
Response.Write(dInfo.CreationTime);
Response.Write("<br/>");

//if (dInfo.CreationTime < DateTime.Now.AddMonths(-3))
if (dInfo.CreationTime < DateTime.Now.AddMilliseconds(-1))
{
Response.Write("3개월이 지난 디렉토리입니다.");
dInfo.Delete(true); /true 값을 주면 하위 디렉토리,파일까지 삭제.
}
else
{
Response.Write("3개월이 지나지 않은 디렉토리입니다.");
}

 



            //2개월 이상 디렉토리 삭제
DirectoryInfo dirTemp = new DirectoryInfo(realORtestDir);
foreach(DirectoryInfo dirs in dirTemp.GetDirectories())
{
if (dirs.CreationTime < DateTime.Now.AddMonths(-2))
{
//Response.Write("2개월이 지난 디렉토리입니다.");
//Response.Write(dirs.FullName);
dirs.Delete(true);
}

}

asp.net 네트워크 드라이브에 파일 쓰기

찾아 봤는 데, 여러가지 방법이 있지만 제일 쉽게 됬던 방법이다.

1. iis 관리자 -> IIS 영역 -> 인증 -> asp.net 가장 -> 작업(편집), 사용 -> 관련 아이디 패스워드 지정.

2. asp.net에서 경로 지정시 이런 형식으로 사용한다.
 saveDir = "\\\\192.168.0.1\\imgData\\" + today;

2013년 1월 29일 화요일

윈도우 telnet 자동 로그인

윈도우에서 telnet 자동 접속 후 명령어 실행하는 프로그램입니다.

확장자는 .vbs 로 합니다.

사용법

1. C:\oneIP.txt 파일을 만들고 한줄씩 접속할  아이피를 넣어준다.

2.아래 소스를 아무이름으로 .vbs 확장자로 만든다.

ex)telnet_auto.vbs

3. 실행한다.

ps. 접속 후 실행할 명령은 알아서 넣기.


set WshShell = WScript.CreateObject("WScript.Shell")
Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8
Const ipListFile = "C:\oneIP.txt"
Set Shell = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")

If FSO.FileExists(ipListFile) Then
Set SwitchIP = FSO.opentextfile(ipListFile, ForReading, False)
Else
Wscript.Echo "This file (" + ipListFile + ") does not exist."
Wscript.Quit
End If
Dim userId
Dim userPw

userId = "yourid"
userPw = "yourpass"

WScript.Echo "Don't touch Anything!!"

While Not SwitchIP.atEndOfStream
IP = SwitchIP.Readline()
WshShell.Run "cmd"
WScript.Sleep 100
WshShell.AppActivate "C:\Windows\system32\cmd.exe"

WScript.Sleep 100
rem telnet [address] [port]
WshShell.SendKeys "telnet " + IP + " 23{ENTER}"

WScript.Sleep 2000
rem [id]
WshShell.SendKeys userId + "{ENTER}"

WScript.Sleep 2000
rem [pwd]
WshShell.SendKeys userPw + "{ENTER}"

WScript.Sleep 1000
rem [command what you want]
WshShell.SendKeys "show ver{ENTER}"

WshShell.SendKeys "{ENTER}"
WScript.Sleep 2000
WshShell.SendKeys "exit{ENTER}"

Wend
WScript.Sleep 2000
WScript.Echo "Completed."


2013년 1월 3일 목요일

mysql 4.0 이하에서 bin 로그 제거

bin 로그 제거

mysql 버젼 : mysql Ver 12.22 Distrib 4.0.26, for pc-linux-gnu (i686)

my.cnf 에 아래의 옵션을 주면 되지만, MySQL 5.0.3 이상부터 지원.
expire_logs_days = 7
크론에 아래와 같이 등록 하여 사용하라고 했는 데, syntex 에러 발생
00 00 * * 7 /usr/local/mysql/bin/mysql -uroot -pxxxxx -e "PURGE BINARY LOGS BEFORE date_sub(now(), interval 7 day)";
출처

BEFORE 변수는 MySQL 4.1 (으)로부터 이용 가능하게 되어 있다고 함.;;
출처

할 수 있는 건, 아래 꺼 밖에 없음
PURGE MASTER LOGS TO 'mysql-bin.010';
스크립트 작성.
bin 로그 10개만 남기고 나머지 다 삭제.

 
#!/bin/sh
bin_log_path="/usr/local/mysql/data/"
bin_log_name="mysql-bin"
bin=${bin_log_path}${bin_log_name}

max_bin_index=`ls ${bin}.* | awk -F. '{print $2}' | sort -n | tail -1`
del_index=`expr ${max_bin_index} - 10`
if [ -f ${bin}.${del_index} ]
then
echo "${bin_log_name}.${del_index} 파일 존재"
echo "${bin_log_name}.${del_index} 이전 파일 제거"
/usr/local/mysql/bin/mysql -uroot -p패스워드 -e "PURGE MASTER LOGS TO '${bin_log_name}.${del_index}'";
fi