Colors of Ray+Hue'

scale bc 사용법

shell2016. 4. 20. 08:29
bc, for basic calculator 
https://en.wikipedia.org/wiki/Bc_(programming_language)

리눅스 셸에서 산수 계산을 하는 방법이다. 

간단한 정수 연산은 아래와 같이 할 수 있다. 

expr 34 + 51

이렇게 하면 85가 출력될 것이다. 수와 연산기호 사이에는 반드시 띄어쓰기를 해 주자. 더하기(+), 빼기(-), 곱하기(\*), 나누기(/), 모듈로(modulo, %) 등을 할 수 있다. 곱하기의 경우 연산기호에 유의하자. 반드시 \* 이렇게 써야 한다. 

34*51의 결과를 result 변수에 저장하려면 아래와 같이 하면 되겠다.

result=`expr 34 \* 51`
echo "$result"

정수가 아니라 실수를 사용하고 싶다거나, 연산기호가 여러개 들어가는 복잡한 계산을 하려면 expr로는 안되고 bc를 이용해야 한다. 

34.8+51.2를 더하고 이 값을 제곱하려면 아래와 같이 하면 되겠다.

echo "(34.8+51.1)^2" | bc

bc를 사용할 때는 곱하기 연산기호를 평소처럼 그냥 쓰면 된다. 예를 들어 24*3은 아래와 같이 하면 된다.

echo "24*3" | bc


echo 명령으로 출력하는 수식은 반드시 따옴표로 묶어 주자.


-- 2013.7.24 추가 --

실수 나눗셈에 대한 부분을 추가로 적어 두기로 했다.

echo "1/2" | bc
0

1을 2로 나누는 예시인데, 결과가 0.5가 아니라 0이라고 나온다. 기본 설정이 정수 연산으로 되어 있어서 그러니, 제대로 된 결과를 얻으려면 scale 변수에 소수점 이하 몇자리를 출력할 것인지 지정해 주어야겠다. 소수점 이하 세자리를 출력하고 싶으면 아래와 같이 해 보자.

echo "scale=3; 1/2" | bc
0.500

이제 결과가 제대로 나왔다.



출처: http://bahndal.egloos.com/399592


PATH의 우선 순위 문제로 보임. 다른 time 유틸리티가 우선순위에 따라 적용되는 것으로 보임.

/usr/bin/time -o 경우, -o 인식

time -o 경우 -o 옵션을 인식할 수 없음. 


'shell' 카테고리의 다른 글

scale bc 사용법  (0) 2016.04.20
[shell] find 사용법  (0) 2015.11.03
while read a를 이용한 화면출력 및 저장 및 파일 만들기  (0) 2015.10.14

[shell] find 사용법

shell2015. 11. 3. 03:48

간단한 find 사용법 메모


1. /home/backup 폴더에서

2. 서브디렉토리 폴더 내부를 제외하고 해당 폴더만
3. *.tar.gz 파일과 *.sql 파일이 생성된지(수정된지) 일주일 지난 파일을 찾아서
4. 다만 origin.tar.gz 파일과 origin.sql 파일은 삭제 금지(삭제 대상에서 제외)
5. 삭제

-maxdepth n
서브디렉토리를 들어가서 검색하는 범위를 지정 할 때에 사용합니다.
해당 폴더만 검색하는 경우는 -maxdepth 를 1로 주시면 됩니다.

-type
f는 파일 d는 디렉토리만 검색합니다.

-name
해당 파일명/디렉토리명에 대해서 검색합니다.
두개 이상의 파일 이름을 지정할 때에는 or 나 not 옵션을 붙이시면 됩니다.
or 는 -o 옵션을 주시면 되고, not 은 ! 옵션을 주시면 됩니다.
예를 들어 origin.tar.gz 와 origin.sql 를 검색하고자 하는 경우
-name 'origin.tar.gz' -o -name 'origin.sql'
origin.tar.gz 와 origin.sql 를 제외하고 검색하고자 하는 경우
! -name 'origin.tar.gz' ! -name 'origin.sql'
로 옵션을 지정하시면 됩니다.

-mtime n
n*24 시간 이전에 수정된 파일들에 대해 검색합니다.

-exec [명령어] {}
검색결과를 {} 안에 넣어서 해당 명령어를 수행합니다.

따라서 질문자님께서 말씀하신 내용을 수행하시려면 다음과 같이 실행하시면 됩니다.
find /home/backup/ -maxdepth 1 -type f ! -name 'origin.tar.gz' ! -name 'origin.sql' -mtime +7 -exec rm {} \;

출처:http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=10302&docId=221797336&qb=66as64iF7Iqk66qF66C57Ja0IOyYteyFmCDrp4jsnbTrhIjsiqQg65GQ6rCc&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=SBPWGdoRR1ossbayg1lsssssstG-433712&sid=9qJfBk%2BkUtwT6RUfzv87Ng%3D%3D


cat test2.sh | while read a ; do echo "${a}"; echo "${a}" >> logfile.txt; done

ls * | while read a; do cat $a; done


'shell' 카테고리의 다른 글

scale bc 사용법  (0) 2016.04.20
time -o (--output=) 사용법 in Ubuntu 12.04  (0) 2016.03.19
[shell] find 사용법  (0) 2015.11.03