목차
Shell 애플리케이션 시나리오
Shell이 ​​할 수 있는 작업
Shell이 ​​할 수 없는 작업
Shell 작동 방식
가장 간단한 스크립트:
스크립트 실행:
Variables in Shell
변수에 액세스
쉘의 4가지 산술 연산
예제 프로그램
다른 연산자 =, ==, !=,! , -o, -a
관계 연산자
字符串运算符
字符串
数组
输出程序
echo
printf
判断语句
test命令
while循环
跳出循环
函数
重定向
写一个自动输入命令的脚本
自动提交github仓库的脚本
운영 및 유지보수 리눅스 운영 및 유지 관리 쉘 스크립트는 어떻게 사용해야 합니까?

쉘 스크립트는 어떻게 사용해야 합니까?

Jun 21, 2017 pm 02:17 PM
shell 기사 각본

Shell 스크립트는 Shell의 명령 해석 기능을 사용하여 일반 텍스트 파일을 구문 분석한 후 이러한 기능을 실행합니다. Shell 스크립트는 일련의 명령 모음이라고 할 수도 있습니다.
Shell은 win/Unix/Linux에서 직접 사용할 수 있으며, 수많은 내부 시스템 기능을 호출하여 프로그램을 해석하고 실행할 수 있습니다. Shell 스크립트에 능숙하다면 컴퓨터를 조작하고 저장하는 것이 더 쉬워질 것입니다. 많은 시간.

Shell 애플리케이션 시나리오

Shell이 ​​할 수 있는 작업

  • 일부 복잡한 명령을 단순화합니다(일반적으로 github 코드를 제출하려면 여러 단계가 필요할 수 있지만 Shell을 사용하면 한 단계로 단순화할 수 있습니다)

  • 할 수 있습니다 write some 스크립트는 프로젝트의 최신 SDK(라이브러리) 자동 교체를 자동으로 실현합니다

  • 자동 패키징, 컴파일, 퍼블리싱 및 기타 기능

  • 디스크의 빈 폴더 정리

  • 요컨대, 일반 라이브 스크립트를 사용해 볼 수 있습니다

Shell이 ​​할 수 없는 작업

  • 정확한 계산이 필요한 경우

  • 언어 효율성이 필요한 경우

  • 일부 네트워크 작업이 필요한 경우

  • 요약 , Shell은 스크립트를 빠르게 개발할 수 있으며 개발 프로세스를 단순화하고 고급 언어를 대체하는 데 사용할 수 없습니다. ​​


Shell 작동 방식

Shell은 컴파일할 필요가 없기 때문에 스크립트 언어라고 할 수 있지만, 컴파일 및 실행에는 기존 언어보다 더 많은 해석 프로세스가 필요하므로 기존 직접 컴파일 언어보다 효율성이 약간 떨어집니다.


가장 간단한 스크립트:

#!/bin/bashecho "Hello World"
로그인 후 복사

텍스트 편집 도구를 열고 위와 같이 편집한 다음 test.sh로 저장하면 됩니다.

스크립트 실행:

1. cd 到该目录下2. chmod +x ./test.sh  #给脚本权限3. ./test.sh  #执行脚本
로그인 후 복사

렌더링 1

이렇게 해서 우리는 처음이자 가장 간단한 스크립트를 작성했습니다. 이제 몇 가지 복잡한 스크립트를 작성해 볼 수 있습니다.


Variables in Shell

myText="hello world"muNum=100
로그인 후 복사

여기서 주목해야 할 점은 "=" 앞뒤에 공백이 있어서는 안 되며 명명 규칙은 다른 언어와 동일하다는 것입니다.

변수에 액세스

myText="hello world"muNum=100echo $myTextecho muNum
로그인 후 복사

변수에 액세스하려면 $를 사용해야 합니다. 그렇지 않으면 아래 그림과 같이 출력이 일반 텍스트 콘텐츠가 됩니다.


렌더링 2

쉘의 4가지 산술 연산

예제 프로그램

#!/bin/bashecho "Hello World !"a=3b=5val=`expr $a + $b`echo "Total value : $val"val=`expr $a - $b`echo "Total value : $val"val=`expr $a \* $b`echo "Total value : $val"val=`expr $a / $b`echo "Total value : $val"
로그인 후 복사

여기서 주의할 점은 변수를 정의할 때 "=" 앞뒤에 공백이 있어서는 안 된다는 점입니다. 단, 사칙연산을 4번 수행할 때에는 연산 기호 앞뒤에 공백이 있어야 하며, 곱셈을 수행할 때 이스케이프 처리해야 합니다.


Rendering 3.png

다른 연산자 =, ==, !=,! , -o, -a

예제 프로그램

a=3b=5val=`expr $a / $b`echo "Total value : $val"val=`expr $a % $b`echo "Total value : $val"if [ $a == $b ]then
   echo "a is equal to b"fiif [ $a != $b ]then
   echo "a is not equal to b"fi
로그인 후 복사

Rendering 4

관계 연산자

#!/bin /sh 예제 프로그램

a=10b=20if [ $a -eq $b ]then
   echo "true"else
   echo "false"fiif [ $a -ne $b ]then
   echo "true"else
   echo "false"fiif [ $a -gt $b ]then
   echo "true"else
   echo "false"fiif [ $a -lt $b ]then
   echo "true"else
   echo "false"fiif [ $a -ge $b ]then
   echo "true"else
   echo "false"fiif [ $a -le $b ]then
   echo "true"else
   echo "false"fi
로그인 후 복사

렌더링 5

字符串运算符





字符串

#!/bin/shmtext="hello"  #定义字符串
mtext2="world"mtext3=$mtext" "$mtext2  #字符串的拼接echo $mtext3  #输出字符串echo ${#mtext3}  #输出字符串长度echo ${mtext3:1:4}  #截取字符串
로그인 후 복사

效果图6

数组

#!/bin/sharray=(1 2 3 4 5)  #定义数组
array2=(aa bb cc dd ee)  #定义数组
value=${array[3]}  #找到某一个下标的数,然后赋值echo $value  #打印
value2=${array2[3]}  #找到某一个下标的数,然后赋值echo $value2  #打印
length=${#array[*]}  #获取数组长度echo $length
로그인 후 복사

效果图7

输出程序

echo

#!/bin/shecho "hello world"  echo hello world  

text="hello world"echo $textecho -e "hello \nworld"  #输出并且换行echo "hello world" > a.txt  #重定向到文件echo `date`  #输出当前系统时间
로그인 후 복사

效果图8

printf

同c语言,就不过多介绍了


判断语句

  • if

  • if-else

  • if-elseIf

  • case

#!/bin/sha=10b=20if [ $a == $b ]then
   echo "true"fiif [ $a == $b ]then
   echo "true"else
   echo "false"fiif [ $a == $b ]then
   echo "a is equal to b"elif [ $a -gt $b ]then
   echo "a is greater than b"elif [ $a -lt $b ]then
   echo "a is less than b"else
   echo "None of the condition met"fi
로그인 후 복사
效果图9

test命令

test $[num1] -eq $[num2]  #判断两个变量是否相等
test num1=num2  #判断两个数字是否相等
로그인 후 복사

 

for循环
#!/bin/shfor i in {1..5}doecho $idonefor i in 5 6 7 8 9doecho $idonefor FILE in $HOME/.bash*do
   echo $FILEdone
로그인 후 복사
<code class="bash"><span class="hljs-meta"><br/><img src="/static/imghw/default1.png"  data-src="https://img.php.cn/upload/article/000/000/001/e287dce1bca30a9896dc8bd2ecb0e156-15.png"  class="lazy" alt=""/></span></code>
로그인 후 복사
效果10

while循环

#!/bin/shCOUNTER=0while [ $COUNTER -lt 5 ]doCOUNTER=`expr $COUNTER + 1`echo $COUNTERdoneecho &#39;请输入。。。&#39;echo &#39;ctrl + d 即可停止该程序&#39;while read FILMdoecho "Yeah! great film the $FILM"done
로그인 후 복사

以上是while循环的两种用法,第一种是比较常规的,执行循环,然后每次都把控制的数加1,就可以让while循环有退出的条件了。

第二种是用户从键盘数据,然后把用户输入的文字输出出来。


跳出循环

break  #跳出所有循环
break n  #跳出第n层f循环
continue  #跳出当前循环
로그인 후 복사

函数

#!/bin/shsysout(){echo "hello world"}

sysout
로그인 후 복사

定义一个没有返回值的函数,然后调用该函数

#!/bin/shtest(){

    aNum=3anotherNum=5return $(($aNum+$anotherNum))
}
test
result=$?echo $result
로그인 후 복사

定义一个有返回值的函数,调用该函数,输出结果


效果图11
#!/bin/shtest(){echo $1  #接收第一个参数echo $2  #接收第二个参数echo $3  #接收第三个参数echo $#  #接收到参数的个数echo $*  #接收到的所有参数
}

test aa bb cc
로그인 후 복사

定义了一个需要传递参数的函数


效果图12

重定向

$echo result > file  #将结果写入文件,结果不会在控制台展示,而是在文件中,覆盖写
$echo result >> file  #将结果写入文件,结果不会在控制台展示,而是在文件中,追加写echo input < file  #获取输入流
로그인 후 복사


写一个自动输入命令的脚本

自动提交github仓库的脚本

#!/bin/bashecho "-------Begin-------"git add .
git commit -m $1echo $1git push origin masterecho "--------End--------"
로그인 후 복사

 


效果图13

以上便是我对shell知识的总结,欢迎大家点心,评论,一起讨论~~

 脚本程序

위 내용은 쉘 스크립트는 어떻게 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 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 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Windows 11에 클래식 쉘을 설치하는 방법은 무엇입니까? Windows 11에 클래식 쉘을 설치하는 방법은 무엇입니까? Apr 21, 2023 pm 09:13 PM

&lt;p&gt;운영 체제를 사용자 정의하는 것은 일상 생활을 더욱 즐겁게 만드는 좋은 방법입니다. 사용자 인터페이스 변경, 사용자 정의 테마 적용, 위젯 추가 등을 수행할 수 있습니다. 오늘은 Windows 11에 ClassicShell을 설치하는 방법을 알려드리겠습니다. </p><p>이 프로그램은 오랫동안 사용되어 왔으며 운영 체제를 수정할 수 있습니다. 2017년에 해체된 조직은 이제 자원봉사자들이 운영하기 시작했습니다. 새 프로젝트는 OpenShell이라고 하며 현재 관심 있는 사람들을 위해 Github에서 사용할 수 있습니다. &lt;/p&gt;&a

5분마다 실행되는 Python 스크립트 5분마다 실행되는 Python 스크립트 Sep 10, 2023 pm 03:33 PM

자동화 및 작업 스케줄링은 소프트웨어 개발에서 반복적인 작업을 간소화하는 데 중요한 역할을 합니다. API에서 데이터 가져오기, 데이터 처리 수행, 주기적인 업데이트 보내기 등 5분마다 실행해야 하는 Python 스크립트가 있다고 상상해 보세요. 스크립트를 너무 자주 수동으로 실행하면 시간이 많이 걸리고 오류가 발생하기 쉽습니다. 여기서 작업 스케줄링이 시작됩니다. 이 블로그 게시물에서는 Python 스크립트가 5분마다 실행되도록 예약하여 수동 개입 없이 자동으로 실행되도록 하는 방법을 살펴보겠습니다. 이 목표를 달성하는 데 사용할 수 있는 다양한 방법과 라이브러리에 대해 논의하여 작업을 효율적으로 자동화할 수 있습니다. time.sleep() 함수를 사용하여 5분마다 Python 스크립트를 실행하는 쉬운 방법은 tim을 활용하는 것입니다.

편집용 스크립트를 만드는 방법은 무엇입니까? 편집을 통해 스크립트를 생성하는 방법에 대한 튜토리얼 편집용 스크립트를 만드는 방법은 무엇입니까? 편집을 통해 스크립트를 생성하는 방법에 대한 튜토리얼 Mar 13, 2024 pm 12:46 PM

Cutting은 포괄적인 편집 기능, 가변 속도 지원, 다양한 필터 및 뷰티 효과, 풍부한 음악 라이브러리 리소스를 갖춘 비디오 편집 도구입니다. 이 소프트웨어에서는 비디오를 직접 편집하거나 편집 스크립트를 만들 수 있지만 어떻게 해야 합니까? 이번 튜토리얼에서는 에디터가 스크립트를 편집하고 만드는 방법을 소개합니다. 제작 방법: 1. 컴퓨터에서 편집 소프트웨어를 클릭하여 연 다음 "Creation Script" 옵션을 찾아 클릭하여 엽니다. 2. 크리에이티브 스크립트 페이지에서 '스크립트 제목'을 입력한 후, 개요에 촬영 내용에 대한 간략한 소개를 입력합니다. 3. 개요에서 "스토리보드 설명" 옵션을 어떻게 볼 수 있나요?

컴퓨터를 종료하는 Python 스크립트 컴퓨터를 종료하는 Python 스크립트 Aug 29, 2023 am 08:01 AM

오늘날 빠르게 변화하는 디지털 세상에서 컴퓨터 작업을 자동화할 수 있으면 생산성과 편의성이 크게 향상될 수 있습니다. 작업 중 하나는 컴퓨터를 종료하는 것인데, 수동으로 수행할 경우 시간이 많이 걸릴 수 있습니다. 고맙게도 Python은 시스템과 상호 작용하고 이러한 작업을 자동화할 수 있는 강력한 도구 세트를 제공합니다. 이 블로그 게시물에서는 컴퓨터를 쉽게 종료하기 위해 Python 스크립트를 작성하는 방법을 살펴보겠습니다. 자동 종료를 예약하거나, 원격으로 종료를 시작하거나, 수동 종료를 방지하여 시간을 절약하려는 경우 이 스크립트가 유용할 것입니다. 필수 모듈 가져오기 스크립트 작성을 시작하기 전에 시스템과 상호 작용하고 shutdown 명령을 실행하기 위해 필요한 모듈을 가져와야 합니다. 이 섹션에서는 os 모듈을 가져옵니다(이 모듈은

Linux 시스템에서 .sh 파일을 실행하는 방법은 무엇입니까? Linux 시스템에서 .sh 파일을 실행하는 방법은 무엇입니까? Mar 14, 2024 pm 06:42 PM

Linux 시스템에서 .sh 파일을 실행하는 방법은 무엇입니까? Linux 시스템에서 .sh 파일은 일련의 명령을 실행하는 데 사용되는 셸 스크립트라는 파일입니다. .sh 파일 실행은 매우 일반적인 작업입니다. 이 기사에서는 Linux 시스템에서 .sh 파일을 실행하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 방법 1: 절대 경로를 사용하여 .sh 파일을 실행합니다. Linux 시스템에서 .sh 파일을 실행하려면 절대 경로를 사용하여 파일 위치를 지정할 수 있습니다. 구체적인 단계는 다음과 같습니다. 터미널을 엽니다.

오늘 Toutiao에 기사를 게시하여 어떻게 돈을 벌 수 있나요? 오늘 Toutiao에 기사를 게시하여 더 많은 수입을 얻는 방법! 오늘 Toutiao에 기사를 게시하여 어떻게 돈을 벌 수 있나요? 오늘 Toutiao에 기사를 게시하여 더 많은 수입을 얻는 방법! Mar 15, 2024 pm 04:13 PM

1. 오늘 Toutiao에 기사를 게시하여 어떻게 돈을 벌 수 있습니까? 오늘 Toutiao에 기사를 게시하여 더 많은 수입을 얻는 방법! 1. 기본 권익 활성화: 기사의 원본은 광고를 통해 수익을 얻을 수 있으며, 동영상은 가로 화면 모드에서 원본이어야 수익을 얻을 수 있습니다. 2. 팬 100명 권리 활성화: 팬 수가 100명 이상에 도달하면 마이크로 헤드라인, 오리지널 Q&A 작성, Q&A 수익을 얻을 수 있습니다. 3. 독창적인 작품을 고집하라: 독창적인 작품에는 기사, 마이크로 헤드라인, 질문 등이 포함되며, 300단어 이상이어야 합니다. 불법 표절 저작물을 원작으로 출판할 경우 크레딧 점수가 차감되며, 수익금도 차감되므로 주의하시기 바랍니다. 4. 수직성: 전문 분야에서 기사를 작성할 때 분야를 넘나들며 마음대로 기사를 작성할 수 없으며 적절한 추천을 받을 수 없으며, 작품의 전문성과 정확성을 확보할 수 없으며 팬을 유치하기가 어렵습니다. 그리고 독자들. 5. 활동: 높은 활동,

HRESULT 0x80073D02 문제가 해결되면서 PowerShell 배포가 실패함 HRESULT 0x80073D02 문제가 해결되면서 PowerShell 배포가 실패함 May 10, 2023 am 11:02 AM

스크립트를 실행할 때 PowerShell에서 "Add-AppxPackage: 배포에 실패했습니다. HRESULT: 0x80073D02, 패키지가 수정하는 리소스가 현재 사용 중이므로 패키지를 설치할 수 없습니다. 오류 0x80073D02..."라는 오류 메시지가 표시됩니까? 오류 메시지에 나와 있듯이 이는 이전 프로세스가 실행되는 동안 사용자가 하나 또는 모든 WindowsShellExperienceHost 응용 프로그램을 다시 등록하려고 할 때 발생합니다. 이 문제를 신속하게 해결할 수 있는 몇 가지 간단한 솔루션이 있습니다. 수정 1 – 경험 호스트 프로세스 종료 powershell 명령을 실행하기 전에 종료해야 합니다

Explorer.exe가 시스템 시작 시 시작되지 않음 [수정] Explorer.exe가 시스템 시작 시 시작되지 않음 [수정] Jun 03, 2023 am 08:31 AM

요즘 많은 Windows 사용자는 심각한 Windows 시스템 문제에 직면하기 시작합니다. 문제는 시스템이 로드된 후 Explorer.exe를 시작할 수 없고 사용자가 파일이나 폴더를 열 수 없다는 것입니다. 그러나 Windows 사용자는 경우에 따라 명령 프롬프트를 사용하여 Windows 탐색기를 수동으로 열 수 있으며 시스템을 다시 시작할 때마다 또는 시스템 시작 후에 그렇게 해야 합니다. 이는 문제가 될 수 있으며 아래에 언급된 다음 요인으로 인해 발생합니다. 시스템 파일이 손상되었습니다. 빠른 시작 설정을 활성화합니다. 오래되었거나 문제가 있는 디스플레이 드라이버. 시스템의 일부 서비스가 변경되었습니다. 수정된 레지스트리 파일. 위의 모든 요소를 ​​염두에 두고 사용자에게 확실히 도움이 될 몇 가지 요소를 생각해냈습니다.

See all articles