Home Operation and Maintenance Linux Operation and Maintenance Comprehensively sort out the functions and usage of various brackets in the shell under Linux

Comprehensively sort out the functions and usage of various brackets in the shell under Linux

Sep 18, 2020 pm 04:53 PM
linux

When I was learning shell programming, I was confused by the usage of various brackets. With gradual familiarity and accumulation, I finally mastered the usage of all brackets. Now, I would like to share with you what I have summarized.

Note: The prerequisite for reading this document is that you already have the foundation of bash and shell programming.

Single parentheses ()

But there are two common functions of parentheses: command substitution and array initialization

Command substitution

When the $() structure is encountered, the shell executes the command within the brackets and returns the result

# tmp=$(date)
# echo $tmp
Fri Sep 18 10:22:30 CST 2020
Copy after login

Initialize array

# 初始化数组
lnmp=(linux nginx mysql php)
Copy after login

Double parentheses (())

Remember that there is a The characteristic is that the words in the brackets must conform to the syntax of the C language, and there is no need to add the $ symbol when using variable names.

Double parentheses are used more often. They can be used for integer calculations (decimals are not supported). For example: $((3 2))

# echo $((1+3))
4
# n1=3
# echo $((n1+7))
10
Copy after login

As long as it conforms to the operation expansion of C language grammar, it can be written in the brackets

# echo $((3+4>5 ? 1 :0)) 
1
# echo $((3+4>9 ? 1 :0)) 
0
Copy after login

Reassign the variable value. At this time, you cannot add $ outside the brackets. Symbol

# i=1;((i++));echo $i;
2
# i=1;((i=100));echo $i;
100
Copy after login

Double brackets are often used in for loops

for ((i=0;i<5;i++));do echo -n $i;done
Copy after login

Single square brackets[]

Single square brackets are the most common It is used in logical judgment. In addition, it can also be used as the subscript of an array, and to express a range in regular expressions.

Used in shell scripts for conditional judgment:

if [ 1 > 2 ] then
    ……
fi
Copy after login

can also be used as an array subscript. :

# echo ${lnmp[1]}
nginx
Copy after login

is used in regular expressions to indicate a range

[0-9]  表示数子0-9都行
Copy after login

Double brackets

are the same as single brackets, double brackets Also used in conditional judgments, but it is more general than single square brackets. Here's an example:

[ a > b ] && [ a > 0 ]或[ a > b -a a > 0 ]
改成双括号
[[ a > b && a > 0 ]]
Copy after login

Single curly brace {}

Curly brace expansion. (globbing) will expand the file name enclosed in curly braces. Within curly braces, no whitespace is allowed unless the whitespace is quoted or escaped.

For example, entering the command rm -f {1,2}.txt will delete files 1.txt and 2.txt.

The role of .. in single curly braces

The two dots here represent a range. For example,

echo {1..10}  #将打印1,2,3,4,5,6,7,8,9,10
Copy after login

curly braces are also commonly used in shell scripts for code blocks.

In addition to the first time, single curly braces can also be used to replace and delete variable content and test variable content. A common example is given. We often determine whether a variable exists, and if it does not exist, set a new value for the variable.

val=${n1:-test}
Copy after login

The above code indicates that if the variable n1 does not exist or is empty, the val variable value is set to test, otherwise the val value is the value of the n1 variable

The above is the detailed content of Comprehensively sort out the functions and usage of various brackets in the shell under Linux. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Android TV Box gets unofficial Ubuntu 24.04 upgrade Android TV Box gets unofficial Ubuntu 24.04 upgrade Sep 05, 2024 am 06:33 AM

Android TV Box gets unofficial Ubuntu 24.04 upgrade

deepseek web version entrance deepseek official website entrance deepseek web version entrance deepseek official website entrance Feb 19, 2025 pm 04:54 PM

deepseek web version entrance deepseek official website entrance

How to install deepseek How to install deepseek Feb 19, 2025 pm 05:48 PM

How to install deepseek

BitPie Bitpie wallet app download address BitPie Bitpie wallet app download address Sep 10, 2024 pm 12:10 PM

BitPie Bitpie wallet app download address

BITGet official website installation (2025 beginner's guide) BITGet official website installation (2025 beginner's guide) Feb 21, 2025 pm 08:42 PM

BITGet official website installation (2025 beginner's guide)

Zabbix 3.4 Source code compilation installation Zabbix 3.4 Source code compilation installation Sep 04, 2024 am 07:32 AM

Zabbix 3.4 Source code compilation installation

Detailed explanation: Shell script variable judgment parameter command Detailed explanation: Shell script variable judgment parameter command Sep 02, 2024 pm 03:25 PM

Detailed explanation: Shell script variable judgment parameter command

Ouyi okx installation package is directly included Ouyi okx installation package is directly included Feb 21, 2025 pm 08:00 PM

Ouyi okx installation package is directly included

See all articles