当前位置:网站首页>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
边栏推荐
- 中级软件评测师考什么
- [machine learning 03] Lagrange multiplier method
- 使用U2-Net深层网络实现——证件照生成程序
- 软考一般什么时候出成绩呢?在线蹬?
- Cluster task scheduling system lsf/sge/slurm/pbs based on HPC scenario
- 【STM32】实战3.1—用STM32与TB6600驱动器驱动42步进电机(一)
- P1031 [noip2002 improvement group] average Solitaire
- Différences entre les contraintes monotones et anti - monotones
- Schnuka: working principle of robot visual grasping machine visual grasping
- What does intermediate software evaluator test
猜你喜欢
【推荐系统 02】DeepFM、YoutubeDNN、DSSM、MMOE
Summary of router development knowledge
P1223 queuing for water /1319: [example 6.1] queuing for water
枪出惊龙,众“锁”周之
Find the greatest common divisor and the least common multiple (C language)
leetcode-560:和为 K 的子数组
软考信息处理技术员有哪些备考资料与方法?
想考中级软考,一般需要多少复习时间?
Cluster task scheduling system lsf/sge/slurm/pbs based on HPC scenario
深入理解Apache Hudi异步索引机制
随机推荐
Elegant controller layer code
Some superficial understanding of word2vec
深入理解Apache Hudi异步索引机制
多线程-异步编排
Leetcode-560: subarray with sum K
Operation method of Orange Pie orangepi 4 lts development board connecting SATA hard disk through mini PCIe
What are the contents of the intermediate soft test, the software designer test, and the test outline?
【推薦系統 01】Rechub
施努卡:机器视觉定位技术 机器视觉定位原理
ThreadLocal会用可不够
Some online academic report websites and machine learning videos
软考中级,软件设计师考试那些内容,考试大纲什么的?
Records on the use of easyflash v3.3
The difference between monotonicity constraint and anti monotonicity constraint
高级软考(网络规划设计师)该如何备考?
leetcode-304:二维区域和检索 - 矩阵不可变
How to prepare for the advanced soft test (network planning designer)?
【亲测可行】error while loading shared libraries的解决方案
Kotlin realizes wechat interface switching (fragment exercise)
555 circuit details