当前位置:网站首页>Introduction to shell programming
Introduction to shell programming
2022-07-07 10:50:00 【Taylor lance】
1、realpath Get file absolute path
[email protected]:~/crystalmedia/scripts$ realpath activeMq_docker.sh
/home/kylin/crystalmedia/scripts/activeMq_docker.sh
[email protected]:~/crystalmedia/scripts$
2、if sentence
if Mainly pay attention to the space ,if And [ then [] A space before and after
if [ ! -f "${filename}" ]
then
echo "File '${filename}' NOT exists!"
exit 1
fi
Or this way of writing
if [ ! -f "${filename}" ];then
echo "File '${filename}' NOT exists!"
exit 1
fi
remarks :
Basically the same as other scripting languages . There's no big difference . But here's the thing .[] The conditions inside .
1、 String judgment
str1 = str2 When two strings have the same content 、 Length is true
str1 != str2 Dangchuang str1 and str2 It's true when you don't wait
-n str1 When the length of the string is greater than 0 Time is true ( The string is not empty )
-z str1 When the length of the string is 0 Time is true ( Empty string )
str1 Dangchuang str1 If it's not empty, it's true
2、 The judgment of numbers
int1 -eq int2 It is true that two numbers are equal
int1 -ne int2 Two numbers are not equal to true
int1 -gt int2 int1 Greater than int2 It's true
int1 -ge int2 int1 Greater than or equal to int2 It's true
int1 -lt int2 int1 Less than int2 It's true
int1 -le int2 int1 Less than or equal to int2 It's true
3、 Judgment of documents
-r file User readable as true
-w file Users can write true
-x file User executable is true
-f file The file is normal and the file is true
-d file File is true directory is true
-c file File is character special file is true
-b file Files are blocks, special files are true
-s file The file size is not 0 Time is true
-t file When file descriptor ( The default is 1) True when the specified device is a terminal
4、 Complex logical judgment
-a And
-o or
! Not
3、pushd and popd
pushd and popd It is to operate on a directory stack , and dirs Is to display the contents of the directory stack . The directory stack is a stack structure that stores directories , The current directory is always stored at the top of the stack structure ( Here we can see further from below ).
dirs There are two commonly used parameters :
Options
meaning
-p
Each line shows a record
-v
Each line shows a record , At the same time, show the record in the stack index
-c
Empty the directory stack
There is only one directory in the directory stack ( Of course, at the top of the stack ), Is the current directory . After switching directories , The directory in the stack also changes . adopt -c Option can clear other directories in the directory stack except the current directory , Because the directory stack in the above example only contains the current directory , So there's no change .
Every time pushd After the command is executed , By default, a dirs Command to display the contents of the directory stack .pushd There are mainly the following usages :
pushd Catalog
pushd If you use it directly after the directory , Will switch to the directory and put the directory on the top of the directory stack .( Always remember , The current directory is always stored at the top of the directory stack . If the current directory changes , Then the top element of the directory stack must also change ; In turn, , If the element at the top of the stack changes , Then the current directory must have changed .) Here is an example :
[email protected]:~$ pushd crystalmedia/test/
~/crystalmedia/test ~
[email protected]:~/crystalmedia/test$ pushd /opt/
/opt ~/crystalmedia/test ~
[email protected]:/opt$ popd
~/crystalmedia/test ~
[email protected]:~/crystalmedia/test$ popd
~
[email protected]:~$
From the above example we can see that , use pushd To replace cd It's very useful .
pushd and popd Of the two +n
pushd +n
pushd +n Switch to the... In the directory stack n A catalog ( there n Namely dirs -v Command displayed index), And push the directory to the top of the stack in a stack loop .
popd +n
Put the... In the directory stack n Elements delete ( there n It's an order dirs -v Displayed directory index)
We usually don't want to dirs Show it , So pass
pushd Catalog >/dev/null
边栏推荐
- When do you usually get grades in the soft exam? Online pedaling?
- ThreadLocal is not enough
- P1031 [noip2002 improvement group] average Solitaire
- How to get hardware information in unity
- Typescript interface inheritance
- Use of dotween
- 2022.7.6DAY598
- Deeply analyze the main contents of erc-4907 agreement and think about the significance of this agreement to NFT market liquidity!
- Schnuka: working principle of robot visual grasping machine visual grasping
- 【推荐系统 01】Rechub
猜你喜欢
2021 summary and 2022 outlook
Elegant controller layer code
Applet jump to H5, configure business domain name experience tutorial
使用U2-Net深层网络实现——证件照生成程序
CSAPP Bomb Lab 解析
Network engineer test questions and answers in May of the first half of 2022
使用 load_decathlon_datalist (MONAI)快速加载JSON数据
How to successfully pass the senior system architecture designer in the second half of the year?
【推荐系统 01】Rechub
Basic introduction of yarn and job submission process
随机推荐
[pro test feasible] error while loading shared libraries solution
那些易混淆的概念(三):function和class
书签整理-程序员常用网站导航
I'd rather say simple problems a hundred times than do complex problems once
Mendeley -- a free document management tool that automatically inserts references into papers
软考中级,软件设计师考试那些内容,考试大纲什么的?
[dai6] mirror image of JZ27 binary tree
IIC Basics
【PyTorch 07】 动手学深度学习——chapter_preliminaries/ndarray 习题动手版
Monai version has been updated to 0.9. See what new functions it has
软考一般什么时候出成绩呢?在线蹬?
gym安装踩坑记录
CC2530 ZigBee iar8.10.1 environment construction
Simple and easy to modify spring frame components
About hzero resource error (groovy.lang.missingpropertyexception: no such property: weight for class)
2022.7.4DAY596
长列表性能优化方案 memo
SQL Server 知识汇集9 : 修改数据
Elegant controller layer code
ArrayList thread insecurity and Solutions