2014-11-18 2 views
0

저는 프로그래밍에 새로운 방법을 많이 사용합니다. 올바른 방법으로 이것을 묻지 않을 것이므로 확신을 주셔서 감사합니다.셸 스크립트와 BC 사용하기

저는 리눅스 머신과 커맨드 라인을 많이 사용하고 있습니다. 작성되고 준비된 클라우드 모델을 사용하여 몬테카를로 시뮬레이션을 수행해야합니다. 그것은 어떤 종류의 난수 생성기를 사용하여 생성 된 입력 값을 변경해야하는 입력 파일을 가지고 있습니다. 저의 상사는 BC를 사용하여 난수를 생성한다고 주장합니다.

제 생각에 BC는 언어입니다.

sudo apt-get install bc 

지금 나는 원래의 입력 파일의 복사본을 만드는 스크립트의 어떤 종류를 작성하려고한다고 생각하고 원본 파일에서 문자열을 검색하고 문자열로 대체 : 내가 사용하여 다운로드 한 나는 그것을 사용하고 싶다. 쉘 스크립트로이 작업을 수행 할 수 있다고 생각합니까?

어떻게하면 bc와 bash를 동시에 사용할 수 있는지 이해할 수 없습니다. BC 명령을 입력하면됩니다. BC가 셸 명령을 실행합니까? 이게 어떻게 작동합니까?

답변 기억하십시오 저는 프로그래밍에 대해 전혀 이해하지 못하는 컴퓨터를두고 실험실 원숭이입니다. 범위 0 쉘에서 직접 사용할 수있는 의사 임의의 정수이다

$RANDOM 4에 임의의 숫자를 인쇄합니다

$ echo "$RANDOM % 5" | bc 

:

답변

1

한 가지 방법은 shell 사이 bc 상호 작용할 수 있습니다.

쉘 변수를 사용하려면 큰 따옴표를 사용해야합니다. 작은 따옴표를 사용하면 변수가 평가되지 않습니다.

value=$(echo "$RANDOM % 5" | bc) # 0 10 4 
((value*10))      # value X 10 
echo $value      # display $value value 
echo "scale=2; $value/100" | bC# scale=display 2 decimal 
1

당신은 쉘 스크립트 내에서 bc을 사용할 수 있습니다

#!/bin/bash 

# Generate random number between 0 and 9 
RANDVAR=$(echo "$RANDOM % 10" | bc) 
echo $RANDVAR 

이 간단한 스크립트는 방법을 보여줍니다 예를 들면 : 당신이 (()) 산술 연산자를 필요로하는 경우

후, 당신은 연산을 수행 할 수 있습니다 변수에 이름을 지정하고 나중에 스크립트에서 사용할 수 있습니다. "$()"에있는 것이 실행되고 이름에 결과가 할당됩니다 (이 경우 RANDVAR). 이 변수는 예를 들어 sed을 사용하여 대체 할 때 나중에 사용할 수 있습니다.

+1

2014 년에 'backticks'대신'$()'을 사용하십시오. –

+0

@putputer Fair point, 답변을 업데이트했습니다. –

+0

$ RANDOM의 범위가 0에서 32767이기 때문에 10을 기준으로 $ RANDOM을 취하여 생성 된 수는 편향되어서 Monte Carlo에는 적합하지 않습니다. –

관련 문제