찾다

기본 쉘 구문 소개 및 사용

Jun 20, 2017 am 11:24 AM
shell기초적인문법

1. 변수

1. 변수 명명 규칙: 문자 또는 밑줄로 시작하고 그 뒤에 숫자, 문자 또는 밑줄이 옵니다. 함부로 이름을 지정하지 말고, 변수를 보면 그 의미를 추측할 수 있습니다. 변수 이름

2. 변수 할당 echo ${egon_salary}yuan

20000yuan

4. bash에서는 데이터 유형을 선언할 필요가 없습니다. 기본값은 문자 유형입니다.

2. * / %

[root@bogon ~]# echo $[5%2]

1

2. 할당 연산자: =, +=, -=, *=, /=, %=

[root@bogon ~]# x=10

[root@bogon ~]# ((x+=1))

[root@bogon ~]# echo $x

11

3. 관계 연산자: ,!=, ==,>=,
관계 연산자는 종종 (( ))와 함께 사용됩니다. []는 동일한 결과를 얻을 수 있지만 (( ))는 파일 유형을 결정할 수 없습니다. 파일 형식을 확인하려면 [], []를 사용해야 합니다. 결과는 테스트 명령과 동일합니다

명령 실행 결과를 확인하려면 $?를 사용하여 결과가 0이면 true를 의미합니다. 0, 이는 거짓을 의미합니다.

[root@bogon ~]# x=10
[root@bogon ~]# ((x> =8))
[root@bogon ~]# echo $?
0

4 .쉘의 계산기

앞서 $[]를 사용하여 몇 가지 간단한 연산을 수행할 수 있다고 말했지만 소수 연산이 포함된 경우에는 쉘에 있는 계산기를 사용해야 합니다

먼저 소프트웨어를 설치해야 합니다. yum install -y bc

[root@bogon ~]# res=$(echo 'scale=2;1/3' |bc -l | cut -d'.' -f2)
[root@bogon ~]# echo $ {res}%
33%

5.test 명령 test

 test

   -n str 문자열 길이가 0이 아닙니다

   - z str 문자열 길이가 0입니다


  -b 파일이 존재하며 블록 파일입니다

  - d 파일이 존재하고 디렉토리 파일입니다

  -e 파일이 존재하며 일반 파일입니다

-f 파일이 존재하며 일반 파일입니다

링크 파일의 경우(-L과 동일)

   -s 파일이 존재하며 더 큽니다. 0바이트보다

  파일 간 비교

  file1 -nt file2 file1의 생성 시간이 file2보다 늦었습니다.

  file1 -ot file2 file1의 생성 시간이 file2보다 늦었습니다.

 정수 간 비교

 int1 -ne int2 int1과 int2가 동일하지 않습니다

 int1 -eq int2 int1과 int2가 동일합니다

 int1 -lt int2 int1이 int2보다 작습니다

 int1 -le int2 in t1이 int2보다 작거나 같습니다

   int1 -gt int2 1 int2

  int1 -ge int2 int1이 int2보다 크거나 같습니다

  문자열 비교

  str1 = str2 str1과 str2가 같습니다

  str1! =str2 str1과 str2가 같지 않음

 수식 비교

  expression1 -a 표현식2 수식 1과 수식 2가 모두 true

  expression1 -o 수식2 수식 1 또는 수식 2가 true

6. 테스트:

[root@bogon ~]# [[ 2 > 1 ]][root@bogon ~]# echo $?0
[root@bogon ~]# ((20>10))[root@bogon ~]# echo $?0
[root@bogon ~]# ((20<p></p> 문자열 테스트 <p></p><pre class="brush:php;toolbar:false">[root@bogon ~]# [ "abc" = "abc" ][root@bogon ~]# echo $?0
[root@bogon ~]# [[ "abc" = "abc" ]][root@bogon ~]# echo $?0
[root@bogon ~]# (("abc" = "abc"))[root@bogon ~]# echo $?1

[root@bogon ~]# [[ a = a && 1 <p></p><pre class="brush:php;toolbar:false">[root@bogon ~]# (( a = a || 1 > 2 ))[root@bogon ~]# echo $?1[root@bogon ~]# [[ a = a || 1 > 2 ]][root@bogon ~]# echo $?0

단순히 숫자를 비교하려면 (( ))를 사용하세요.

순수한 숫자가 아닌 비교에는 [[ ] ]

3을 사용하세요. control

1.if Branch

 1) 사용자 계정 비밀번호 확인:

input your name : zhangcan
input password : 123login successful
[root@bogon ~]# ./usertest.sh input your name : hha
input password : hag
user or password error

#! /bin/bashuser='zhangcan'password='123'read -p 'input your name : ' name
read -p 'input password : ' codeif [ $name = $user -a $code = $password ];then
        echo 'login successful'elseecho 'user or password error'fi~

 2) 학년 결정

#!/bin/bash #根据用户输入的成绩,判断所属档次,并输出给用户read -p 'input your score : ' scoreif  [ $score -ge 90 ];then
    echo '优秀'elif [ $score -ge 70 -a $score -lt 90 ];then
    echo '良好'elif [ $score -ge 60 -a $score -lt 70 ];then
    echo '及格'elif [ $score -lt 60 ];then
    echo '较差'fi

2.while Loop

 동안(조건)

 do
 Command
 done

예: 사용자가 입력하는 파일 형식을 결정합니다
#!/bin/bashwhile :
do
    read -p 'input your file : ' fileif [ -z $file ];thencontinueelsebreakfi
doneif [ -f $file ];then
    echo "$file is regular file"elif [ -b $file ];then
    echo "$file is block file"elif [ -d $file ];then
    echo "$file is directory file"elseecho "$file type unkonw"fi

3.for loop

 for i in {1..10} # in이 반드시 a일 필요는 없습니다. 숫자, 결과를 반환하는 명령이면

 do

 echo $i

 done

예제 1: 서브넷에서 사용할 수 있는 IP를 테스트하는 스크립트 작성
#!/bin/bashfor i in {1..50}
do
    ping -c1 192.168.16.$i &> /dev/null  # -c1表示ping一次if [ $? -ne 0 ];then
        echo "192.168.16.$i successful"echo "192.168.16.$i" >> ~/ipavailable.txt
    fi
done~

예제 2 : /dev

#!/bin/bashdir='/dev'for i in $(ls $dir)
doif [ -h $dir/$i ];then
        ((link+=1))elif [ -f $dir/$i ];then
        (( rfile+=1))elif [ -d $dir/$i ];then
        ((directory+=1))elif [ -b $dir/$i ];then
        (( block+=1 ))else(( typeunknow+=1))
    fi
done
echo 'block' $block
echo 'regular file' $rfile
echo 'directory' $directory
echo 'link' $link
echo 'unknow' $typeunknow

에서 각 파일 형식의 수를 계산합니다. 중첩 루프

예제 1: 99구구단 출력

#!/bin/bashfor ((i=1;i<p></p>예제 2: 로그인 성공 후 사용자 로그인 계정 비밀번호 확인 quit<div class="cnblogs_code"></div><pre class="brush:php;toolbar:false">#!/bin/bashuser='zhangcan'password='123'tag=truewhile $tag
do
    read -p 'input your name : ' name
    read -p 'input your password : ' codeif [[ $name = $user ]] && [[ $code = $password ]];then
        echo 'login successful'while $tag
        do
            read -p '>>: ' cmdif [[ $cmd = 'quit' ]];then
                tag=falseelse$cmd
            fi
        done
    fi
done

       
를 입력하면 명령을 실행하고 종료할 수 있습니다.

위 내용은 기본 쉘 구문 소개 및 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
리눅스의 핵심 : 5 개의 핵심 구성 요소리눅스의 핵심 : 5 개의 핵심 구성 요소Apr 13, 2025 am 12:15 AM

Linux의 5 가지 핵심 구성 요소는 커널, 쉘, 파일 시스템, 시스템 라이브러리 및 시스템 도구입니다. 1. 커널은 하드웨어 리소스를 관리하고 응용 프로그램에 서비스를 제공합니다. 2. Shell은 사용자와 시스템 간의 인터페이스 역할을하며 명령을 해석하고 실행합니다. 3. 파일 시스템은 데이터 저장 및 구성을 담당합니다. 4. 시스템 라이브러리는 프로그램 통화를 제공하기 위해 사전 컴파일 된 기능을 제공합니다. 5. 시스템 도구는 시스템 관리 및 유지 보수에 사용됩니다. 이러한 구성 요소는 Linux에게 강력한 기능과 유연성을 제공하기 위해 함께 작동합니다.

Debian OpenSSL 구성을 확인하는 방법Debian OpenSSL 구성을 확인하는 방법Apr 12, 2025 pm 11:57 PM

이 기사는 데비안 시스템의 OpenSSL 구성을 확인하여 시스템의 보안 상태를 신속하게 파악하는 데 도움이되는 몇 가지 방법을 소개합니다. 1. OpenSSL 버전을 먼저 확인하고 OpenSSL이 설치되었는지 확인 및 버전 정보를 확인하십시오. 터미널에 다음 명령을 입력하십시오. OpenSSLVERSION이 설치되지 않으면 시스템에 오류가 발생합니다. 2. 구성 파일을 봅니다. OpenSSL의 기본 구성 파일은 일반적으로 /etc/ssl/openssl.cnf에 있습니다. 텍스트 편집기 (예 : Nano)를 사용하여 Sudonano/etc/ssl/openssl.cnf이 파일에는 키, 인증서 경로 및 암호화 알고리즘과 같은 중요한 구성 정보가 포함되어 있습니다. 3. Ope를 활용하십시오

데비안에서 하프 개발 환경을 구축하는 방법데비안에서 하프 개발 환경을 구축하는 방법Apr 12, 2025 pm 11:54 PM

이 안내서는 데비안 시스템에서 Hadoop 개발 환경을 구축하는 방법에 대해 자세히 설명합니다. 1. Java Development Kit (JDK) 설치 먼저, OpenJDK를 설치하십시오 : sudoaptupdatesudoaptinstallopenjdk-11-jdk-yconfigure java_home 환경 변수 : 파일 끝에 sudonano/etc/환경 (실제 JDK 버전에 따라 경로 조정) : java_home = "/usr/lib/jvm/java-11-openjdk-amd64"저장 및 종료 다음 소스/등을 실행합니다

데비안에서 Hadoop 리소스 관리를 수행하는 방법데비안에서 Hadoop 리소스 관리를 수행하는 방법Apr 12, 2025 pm 11:51 PM

Debian 시스템에서 Hadoop 리소스를 효과적으로 관리하려면 다음 단계가 필요합니다. Hadoop 배포 : 먼저 Debian 시스템에 Hadoop의 설치 및 구성을 완료하십시오. 여기에는 Hadoop 배포 패키지 다운로드, 압축 압축, 환경 변수 설정 등과 같은 필요한 작업이 포함됩니다. 클러스터 구성 : 설치가 완료된 후 HDFS (Hadoop 분산 파일 시스템) 및 Yarn (YetanotherResourcenegotiator)의 설정을 포함하여 Hadoop 클러스터를 구성합니다. Core-Site.xml, hdfs-site.xml, mapred-site.x와 같은 코어 구성 파일을 수정해야합니다.

데비안 톰 카트 로그의 보안 설정은 무엇입니까?데비안 톰 카트 로그의 보안 설정은 무엇입니까?Apr 12, 2025 pm 11:48 PM

DebiantomCat 로그의 보안을 향상 시키려면 다음 주요 정책에주의를 기울여야합니다. 1. 권한 제어 및 파일 관리 : 로그 파일 권한 : 기본 로그 파일 권한 (640)은 액세스를 제한합니다. Catalina.sh 스크립트 (예 : 0027에서 0022로 변경)에서 Umask 값을 수정하거나 Log4J2 구성 파일에서 직접 제출을 설정하여 적절한 읽기 및 쓰기 권한을 보장하는 것이 좋습니다. 로그 파일 위치 : Tomcat 로그는 일반적으로/opt/tomcat/logs (또는 유사한 경로)에 있으며이 디렉토리의 권한 설정을 정기적으로 확인해야합니다. 2. 로그 회전 및 형식 : 로그 회전 : server.xml 구성

Tomcat 로그에서 경고를 해석하는 방법Tomcat 로그에서 경고를 해석하는 방법Apr 12, 2025 pm 11:45 PM

Tomcat 서버 로그의 경고 메시지는 응용 프로그램 성능 또는 안정성에 영향을 줄 수있는 잠재적 문제를 나타냅니다. 이러한 경고 정보를 효과적으로 해석하려면 다음 핵심 사항에주의를 기울여야합니다. 경고 내용 : 유형, 원인 및 가능한 솔루션을 명확히하기 위해 경고 정보를주의 깊게 연구하십시오. 경고 정보는 일반적으로 자세한 설명을 제공합니다. 로그 레벨 : Tomcat 로그에는 정보, 경고, 오류 등과 같은 다양한 수준의 정보가 포함되어 있습니다. "경고"레벨 경고는 치명적이지 않은 문제이지만주의가 필요합니다. 타임 스탬프 : 문제가 발생할 때의 시점을 추적하기 위해 경고가 발생하는 시간을 기록하고 특정 이벤트 또는 작업과의 관계를 분석하십시오. 컨텍스트 정보 : 경고 정보 전후에 로그 콘텐츠보기를 얻으십시오.

Tomcat Logs가 메모리 누출 문제 해결에 도움이되는 방법Tomcat Logs가 메모리 누출 문제 해결에 도움이되는 방법Apr 12, 2025 pm 11:42 PM

Tomcat 로그는 메모리 누출 문제를 진단하는 열쇠입니다. Tomcat 로그를 분석하면 메모리 사용 및 가비지 수집 (GC) 동작에 대한 통찰력을 얻을 수 있으며 메모리 누출을 효과적으로 찾아서 해결할 수 있습니다. 다음은 Tomcat 로그를 사용하여 메모리 누출 문제를 해결하는 방법입니다. 1. GC 로그 분석 먼저 자세한 GC 로깅을 활성화하십시오. 다음 JVM 옵션을 Tomcat 시작 매개 변수에 추가하십시오. -xx : printgcdetails-xx : printgcdatestamps-xloggc : gc. 분석 gc.log

Debian Apache 로그가 서버 성능에 미치는 영향은 무엇입니까?Debian Apache 로그가 서버 성능에 미치는 영향은 무엇입니까?Apr 12, 2025 pm 11:39 PM

데비안 시스템 하에서 아파치 로그가 서버 성능에 미치는 영향은 양날의 검으로 긍정적 인 영향과 잠재적 부정적인 영향을 미칩니다. 긍정적 인 측면 : 문제 진단 도구 : Apache Log는 서버에 모든 요청과 응답을 자세히 기록하며 빠르게 결함을 찾는 데 유용한 리소스입니다. 오류 로그를 분석하면 구성 오류, 권한 문제 및 기타 예외를 쉽게 식별 할 수 있습니다. 보안 모니터링 Sentinel : 액세스 로그는 악의적 인 공격 시도와 같은 잠재적 인 보안 위협을 추적 할 수 있습니다. 로그 감사 규칙을 설정하면 비정상적인 활동이 효과적으로 감지 될 수 있습니다. 성능 분석 어시스턴트 : 액세스 로깅 요청 빈도 및 리소스 소비를위한 가장 인기있는 페이지 또는 서비스를 분석하여 리소스 할당을 최적화합니다. 상단 또는 HTOP 등과 결합

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.