# i=2 # i='expr $i + 2' # echo $i 하면 4가 나와야 하는 걸로 알고 있는데 expr $i + 2 가 출력됩니다.
# i=2 # expr $i + 2 하면 4가 나옵니다.
정말 궁금합니다.
리눅스 레드햇 9.0 배포판을 사용 중이며, 커널 버젼은 2.4.20-8입니다.
# i=2 # i='expr $i + 2' # echo $i 하면 4가 나와야 하는 걸로 알고 있는데 expr $i + 2 가 출력됩니다. # i=2 # expr $i + 2 하면 4가 나옵니다. 정말 궁금합니다. 리눅스 레드햇 9.0 배포판을 사용 중이며, 커널 버젼은 2.4.20-8입니다.
expr $i+2가 문자열로 취급되나보죠 :) 자바스크립같은 경우도 겹따옴표나 그냥따옴표나 똑같은 효과를 보죠?? 그거랑 좀 비슷하다고 보시면 되겠나요 . . . :)
--------------------------------------------------------------- 폐인이 되자 (/ㅂ/)
작은 따옴표가 아니라 역따옴표 (back tick)을 사용해야합니다.
---http://coolengineer.com
pynoos 님이 말씀하신대로 역따옴표(back quote)를 쓰는 것은 문자열을 명령어로 바꿔주는 역할을 합니다. (키보드의 보통 ESC아래 있습니다) 그러나 읽는데 헷갈려서 역따옴표가 싫다면 ( ) 괄호로 묶으셔도 됩니다. ( ) 괄호는 문자열을 실행명령으로 바꿔줍니다.
따라서
i=`expr $i + 3` i=$(expr $i + 3)
은 같습니다.
이것보다 더 간단한 방법으로 (( )) 이나 let을 쓰는 방법도 있습니다.
i=$(($i+3)) let i+=3
이런것도 가능하죠. 보통 let 은 expr에서 지원하지 못하는 단항연산인 ++, -- 도 지원하므로 편리하답니다.
======================================== * The truth will set you free.
작은 따옴표가 아니라 역따옴표(backquote)였군요... 다시 한번 답변 감사드립니다...
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
Re: expr을 이용한 간단한 계산을 하려는데 잘 안됩니다.
expr $i+2가 문자열로 취급되나보죠 :)
자바스크립같은 경우도 겹따옴표나 그냥따옴표나 똑같은 효과를 보죠??
그거랑 좀 비슷하다고 보시면 되겠나요 . . . :)
---------------------------------------------------------------
폐인이 되자 (/ㅂ/)
작은 따옴표가 아니라 역따옴표 (back tick)을 사용해야합니다.
작은 따옴표가 아니라 역따옴표 (back tick)을 사용해야합니다.
---
http://coolengineer.com
쉘 스크립트에서의 사칙연산
pynoos 님이 말씀하신대로 역따옴표(back quote)를 쓰는 것은 문자열을 명령어로 바꿔주는 역할을 합니다. (키보드의 보통 ESC아래 있습니다)
그러나 읽는데 헷갈려서 역따옴표가 싫다면 ( ) 괄호로 묶으셔도 됩니다. ( ) 괄호는 문자열을 실행명령으로 바꿔줍니다.
따라서
은 같습니다.
이것보다 더 간단한 방법으로 (( )) 이나 let을 쓰는 방법도 있습니다.
이런것도 가능하죠. 보통 let 은 expr에서 지원하지 못하는 단항연산인 ++, -- 도 지원하므로 편리하답니다.
========================================
* The truth will set you free.
감사합니다.
작은 따옴표가 아니라 역따옴표(backquote)였군요...
다시 한번 답변 감사드립니다...
댓글 달기