Shell 작업 의 세부 사항 정리 (완료 되 지 않 음)
4079 단어 모으다링크 ux 디 테 일
01. bc 계산 시 부동 소수점 문제
bc 로 숫자 를 계산 할 때 결과 에 소수점 이 나타 나 면 소수점 이후 내용 이 기본적으로 표시 되 지 않 아 별로 신경 쓰 지 않 았 다.
[root@linux-node1 wangdong]# echo "1500/1024" | bc
1
[root@linux-node1 wangdong]#
[root@linux-node1 wangdong]# echo "scale=4;1500/1024" | bc
1.4648
[root@linux-node1 wangdong]#
02, if 조건문 판단 문자열 포함
if 의 정규 용법 을 사 용 했 습 니 다. 다만 여기 서 일치 하 는 것 은 정규 표현 식 이 아니 라 문자열 과 일치 할 뿐 입 니 다.
[root@linux-node1 wangdong]# cat test.sh
#!/bin/bash
A="abcdefg"
if [[ $A =~ $1 ]];then
echo "suc"
fi
[root@linux-node1 wangdong]#
[root@linux-node1 wangdong]# sh test.sh bcd
suc
[root@linux-node1 wangdong]# sh test.sh h
[root@linux-node1 wangdong]# sh test.sh g
suc
[root@linux-node1 wangdong]#
03. 서로 다른 시스템 의 bash 와 sh
CentOS 와 Redhat 시스템 에서 bash 와 sh 는 같은 것 이 고 그들 사 이 는 소프트 링크 의 관 계 를 볼 수 있 습 니 다.
[root@linux-node1 /]# cat /etc/redhat-release
CentOS release 6.7 (Final)
[root@linux-node1 /]# ll /bin/sh
lrwxrwxrwx 1 root root 4 12月 14 11:15 /bin/sh -> bash
그러나 우 분투 와 데 비 안 시스템 에 서 는 bash 와 sh 가 다르다.
root@debian-node1:~# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 7.9 (wheezy)
Release: 7.9
Codename: wheezy
root@debian-node1:~# ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Mar 1 2012 /bin/sh -> dash
root@debian-node1:~# ls -l /bin/bash
-rwxr-xr-x 1 root root 975488 Sep 26 2014 /bin/bash
효과 적 으로 도 다 릅 니 다. 예 를 들 어 레이아웃 을 할 때 사용 하 는\t 는 tab 문 자 를 대표 합 니 다.
root@debian-node1:~# cat bash.sh
#!/bin/bash
echo "This\tis\tbash\t!"
root@debian-node1:~# bash bash.sh
This\tis\tbash\t!
root@debian-node1:~# cat sh.sh
#!/bin/sh
echo "This\tis\tsh\t!"
root@debian-node1:~# sh sh.sh
This is sh !
bash 지원\t 가 필요 하 다 면 echo 에서 - e 인 자 를 사용 해 야 합 니 다.
root@debian-node1:~# cat bash.sh
#!/bin/bash
echo "This\tis\tbash\t!"
root@debian-node1:~# bash bash.sh
This\tis\tbash\t!
root@debian-node1:~# cat bash2.sh
#!/bin/bash
echo -e "This\tis\tbash\t!"
root@debian-node1:~# bash bash2.sh
This is bash !
sh 는 기본적으로 if 의 정규 형식 을 사용 하면 오 류 를 보고 할 수 있 지만 bash 는 그렇지 않 습 니 다.
root@debian-node1:~# cat sh_if.sh
#!/bin/sh
A=abcdef
if [[ $A =~ $1 ]];then
echo "ok"
fi
root@debian-node1:~# sh sh_if.sh c
sh_if.sh: 5: sh_if.sh: [[: not found
root@debian-node1:~#
root@debian-node1:~#
root@debian-node1:~# cat bash_if.sh
#!/bin/bash
A=abcdef
if [[ $A =~ $1 ]];then
echo "ok"
fi
root@debian-node1:~# bash bash_if.sh c
ok
이 점 에 대하 여 깊이 연구 하지 않 았 으 니, 마 땅 히 지지 할 방법 이 있어 야 한다.
sh 에 대하 여: http://man.cx/sh
bash 에 대하 여: http://man.cx/bash
04. 계산 에 대한 사용
A、bc
bc 는 Liux 에 내 장 된 간단 한 계산기 입 니 다. 현재 저 는 비교적 즐겨 사용 하고 있 습 니 다. 이 유 는 하나 입 니 다. 간단 합 니 다.다만 그 가 계산 한 결과 0 - 1 사이 의 소수, 예 를 들 어 0.5 라면 표시 할 때 5 만 표시 되 어 나 를 아 프 게 할 것 이다.
우선 간단 한 가감 곱 하기 계산 이다.
[root@linux-node1 ~]# echo "1234+5678"|bc
6912
[root@linux-node1 ~]# echo "20000-50"|bc
19950
[root@linux-node1 ~]# echo "20*30"|bc
600
[root@linux-node1 ~]# echo "15/2"|bc
7
[root@linux-node1 ~]# echo "scale=2;15/2"|bc
7.50
그 다음 에 2, 8, 10, 16 진법 으로 전환 할 수 있 습 니 다.http://jonly.blog.51cto.com/889501/1536237)
그 중에서 ibase 에서 원본 바 꾸 기, obase 쓰기 변환 바 꾸 기.
[root@linux-node1 ~]# echo "obase=2;ibase=10;15" |bc
1111
[root@linux-node1 ~]# echo "obase=16;ibase=10;15" |bc
F
마지막 으로 제곱 근 과 제곱 근 을 계산한다.
[root@linux-node1 ~]# echo "2^8"|bc
256
[root@linux-node1 ~]# echo "sqrt(9)"|bc
3
[root@linux-node1 ~]# echo "sqrt(10)"|bc
3
[root@linux-node1 ~]# echo "scale=2;sqrt(10)"|bc
3.16
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Shell 작업 의 세부 사항 정리 (완료 되 지 않 음)리 눅 스 를 공부 하 는 과정 에서 작은 문제 에 부 딪 힌 적 이 있 습 니 다. 하 찮 을 수도 있 지만 디 테 일 을 추구 할 때 고민 (강박 증 범) 이 많 습 니 다. 다만 여기 서 일치 하 는 것 은 정...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.