当前位置:网站首页>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
边栏推荐
- 2022.7.3DAY595
- [pytorch 07] hands on deep learning chapter_ Preliminaries/ndarray exercises hands-on version
- How to successfully pass the senior system architecture designer in the second half of the year?
- P1031 [noip2002 improvement group] average Solitaire
- 【安装系统】U盘安装系统教程,使用UltraISO制作U盘启动盘
- Schnuka: machine vision positioning technology machine vision positioning principle
- 555 circuit details
- gym安装踩坑记录
- Some superficial understanding of word2vec
- SQL Server knowledge gathering 9: modifying data
猜你喜欢

ADB utility commands (network package, log, tuning related)

Mendeley -- a free document management tool that automatically inserts references into papers

Use load_ decathlon_ Datalist (Monai) fast loading JSON data
![[actual combat] transformer architecture of the major medical segmentation challenges on the list --nnformer](/img/de/0cf12132216ffbde896a7b12022184.png)
[actual combat] transformer architecture of the major medical segmentation challenges on the list --nnformer

What does intermediate software evaluator test

openinstall与虎扑达成合作,挖掘体育文化产业数据价值

單調性約束與反單調性約束的區別 monotonicity and anti-monotonicity constraint

China Southern Airlines pa3.1

【OneNote】无法连接到网络,无法同步问题

CAS mechanism
随机推荐
CAS机制
Typescript interface inheritance
南航 PA3.1
Applet jump to H5, configure business domain name experience tutorial
Typescript interface inheritance
Summary of router development knowledge
软考一般什么时候出成绩呢?在线蹬?
Mendeley--免费的文献管理工具,给论文自动插入参考文献
seata 1.3.0 四种模式解决分布式事务(AT、TCC、SAGA、XA)
What are the test preparation materials and methods for soft exam information processing technicians?
A simple example of delegate usage
在线硬核工具
JS implementation chain call
高级软考(网络规划设计师)该如何备考?
那些易混淆的概念(三):function和class
Find the greatest common divisor and the least common multiple (C language)
MySQL insert data create trigger fill UUID field value
如何顺利通过下半年的高级系统架构设计师?
[actual combat] transformer architecture of the major medical segmentation challenges on the list --nnformer
[machine learning 03] Lagrange multiplier method