search
HomeOperation and MaintenanceLinux Operation and MaintenanceIntroduction and use of basic shell syntax

Introduction and use of basic shell syntax

Jun 20, 2017 am 11:24 AM
shellBasicgrammar

1. Variables

1. Naming rules for variables: start with a letter or underscore, followed by numbers, letters or underscores. It is best not to name the variable casually, but to be able to guess its meaning when you see the variable name.

2. Variable assignment: x=100

echo $x

Delete variable: unset x

3. Use braces ## to define the boundaries of variable names

#[root@bogon ~]# egon_salary=20000

[root@bogon ~]# echo ${egon_salary}yuan
20000yuan

4. There is no need to declare the data type in bash, the default They are all character type

2. Operators

1. Arithmetic operators: + - * / %

[root@bogon ~]# echo $[5%2 ]

1

2. Assignment operators: =, +=, -=, *=, /=, %=

[root@bogon ~]# x=10

[root@bogon ~]# ((x+=1))
[root@bogon ~]# echo $x
11

3. Relational operators: , !=,==,>=, relational operators are often used with (( )). [] can achieve the same result, but (( )) cannot judge To determine the type of a file, [] must be used to determine the file type. [] has the same effect as the test command.

Use $? to view the command execution result. A result of 0 represents true, and non-0 represents false.

[root@bogon ~]# x=10

[root@bogon ~]# ((x>=8))
[root@bogon ~]# echo $?
0

4. Calculator in the shell

I said before that you can use $[] to perform some simple operations, but if it involves decimal operations, you need to use the calculator in the shell

First install the software, yum install -y bc

[root@bogon ~]# res=$(echo 'scale=2;1/3' |bc -l |cut -d '.' -f2)

[root@bogon ~]# echo ${res}%
33%

5.test command test

 test

-n str The string length is not zero

-z str The string length is zero

-b The file exists and is a block file

-d The file exists and is a block file Directory file

 -e file exists

 -f file exists and is a normal file

 -h file exists and is a link file (same as -L)

-s file exists and is greater than zero bytes

Comparison between files

file1 -nt file2 file1 was created later than file2

file1 -ot file2 file1 The creation time is earlier than file2

Comparison between integers

int1 -ne int2 int1 and int2 are not equal

int1 -eq int2 int1 and int2 are equal

int1 -lt int2 int1 is less than int2

int1 -le int2 int1 is less than or equal to int2

int1 -gt int2 int1 is greater than int2

int1 -ge int2 int1 is greater than or equal to int2

Comparison between strings

str1 = str2 str1 and str2 are equal

str1! =str2 str1 and str2 are not equal

Comparison between expressions

Expression1 -a expression2 Expression1 and expression2 are both true

expression1 -o expression2 expression Formula 1 or Expression 2 is true

6. Test example

Numeric comparison test:

[root@bogon ~]# [[ 2 > 1 ]][root@bogon ~]# echo $?0
[root@bogon ~]# ((20>10))[root@bogon ~]# echo $?0
[root@bogon ~]# ((20<div class="cnblogs_code"></div> String test<p></p> <pre class="brush:php;toolbar:false">[root@bogon ~]# [ "abc" = "abc" ][root@bogon ~]# echo $?0
[root@bogon ~]# [[ "abc" = "abc" ]][root@bogon ~]# echo $?0
[root@bogon ~]# (("abc" = "abc"))[root@bogon ~]# echo $?1
[root@bogon ~]# [[ a = a && 1 <div class="cnblogs_code"></div><pre class="brush:php;toolbar:false">[root@bogon ~]# (( a = a || 1 > 2 ))[root@bogon ~]# echo $?1[root@bogon ~]# [[ a = a || 1 > 2 ]][root@bogon ~]# echo $?0
To compare pure numbers, use (( ))

For comparisons other than pure numbers, use [[ ]]

3. Process control

1.if branch

 1) Verify user account password:

input your name : zhangcan
input password : 123login successful
[root@bogon ~]# ./usertest.sh input your name : hha
input password : hag
user or password error
#! /bin/bashuser='zhangcan'password='123'read -p 'input your name : ' name
read -p 'input password : ' codeif [ $name = $user -a $code = $password ];then
        echo 'login successful'elseecho 'user or password error'fi~
 2) Determine the grade

#!/bin/bash #根据用户输入的成绩,判断所属档次,并输出给用户read -p 'input your score : ' scoreif  [ $score -ge 90 ];then
    echo '优秀'elif [ $score -ge 70 -a $score -lt 90 ];then
    echo '良好'elif [ $score -ge 60 -a $score -lt 70 ];then
    echo '及格'elif [ $score -lt 60 ];then
    echo '较差'fi
2.while loop

while (Condition)

 do

 Command

done

Example: Determine what type of file the user inputs

#!/bin/bashwhile :
do
    read -p 'input your file : ' fileif [ -z $file ];thencontinueelsebreakfi
doneif [ -f $file ];then
    echo "$file is regular file"elif [ -b $file ];then
    echo "$file is block file"elif [ -d $file ];then
    echo "$file is directory file"elseecho "$file type unkonw"fi
3.for loop

for i in {1..10} #in does not have to be followed by a number, as long as it is a command that returns a result

do

echo $i

done

Example 1: Write a script to test the IPs that can be used in the subnet

#!/bin/bashfor i in {1..50}
do
    ping -c1 192.168.16.$i &> /dev/null  # -c1表示ping一次if [ $? -ne 0 ];then
        echo "192.168.16.$i successful"echo "192.168.16.$i" >> ~/ipavailable.txt
    fi
done~
Example 2: Count the number of each file type under /dev

#!/bin/bashdir='/dev'for i in $(ls $dir)
doif [ -h $dir/$i ];then
        ((link+=1))elif [ -f $dir/$i ];then
        (( rfile+=1))elif [ -d $dir/$i ];then
        ((directory+=1))elif [ -b $dir/$i ];then
        (( block+=1 ))else(( typeunknow+=1))
    fi
done
echo 'block' $block
echo 'regular file' $rfile
echo 'directory' $directory
echo 'link' $link
echo 'unknow' $typeunknow
4. Nested loops

Example 1: Output a multiplication table

#!/bin/bashfor ((i=1;i <div class="cnblogs_code"></div>Example 2: Verify the user's login account and password. After successful login, you can execute the command and exit when you enter quit<p></p><pre class="brush:php;toolbar:false">#!/bin/bashuser='zhangcan'password='123'tag=truewhile $tag
do
    read -p 'input your name : ' name
    read -p 'input your password : ' codeif [[ $name = $user ]] && [[ $code = $password ]];then
        echo 'login successful'while $tag
        do
            read -p '>>: ' cmdif [[ $cmd = 'quit' ]];then
                tag=falseelse$cmd
            fi
        done
    fi
done
      

The above is the detailed content of Introduction and use of basic shell syntax. For more information, please follow other related articles on the PHP Chinese website!

Statement
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
Maintenance Mode in Linux: When and Why to Use ItMaintenance Mode in Linux: When and Why to Use ItApr 25, 2025 am 12:15 AM

The timing and reasons for using Linux maintenance mode: 1) When the system starts up, 2) When performing major system updates or upgrades, 3) When performing file system maintenance. Maintenance mode provides a safe and controlled environment, ensuring operational safety and efficiency, reducing impact on users, and enhancing system security.

Linux: Essential Commands and OperationsLinux: Essential Commands and OperationsApr 24, 2025 am 12:20 AM

Indispensable commands in Linux include: 1.ls: list directory contents; 2.cd: change working directory; 3.mkdir: create a new directory; 4.rm: delete file or directory; 5.cp: copy file or directory; 6.mv: move or rename file or directory. These commands help users manage files and systems efficiently by interacting with the kernel.

Linux Operations: Managing Files, Directories, and PermissionsLinux Operations: Managing Files, Directories, and PermissionsApr 23, 2025 am 12:19 AM

In Linux, file and directory management uses ls, cd, mkdir, rm, cp, mv commands, and permission management uses chmod, chown, and chgrp commands. 1. File and directory management commands such as ls-l list detailed information, mkdir-p recursively create directories. 2. Permission management commands such as chmod755file set file permissions, chownuserfile changes file owner, and chgrpgroupfile changes file group. These commands are based on file system structure and user and group systems, and operate and control through system calls and metadata.

What is Maintenance Mode in Linux? ExplainedWhat is Maintenance Mode in Linux? ExplainedApr 22, 2025 am 12:06 AM

MaintenanceModeinLinuxisaspecialbootenvironmentforcriticalsystemmaintenancetasks.Itallowsadministratorstoperformtaskslikeresettingpasswords,repairingfilesystems,andrecoveringfrombootfailuresinaminimalenvironment.ToenterMaintenanceMode,interrupttheboo

Linux: A Deep Dive into Its Fundamental PartsLinux: A Deep Dive into Its Fundamental PartsApr 21, 2025 am 12:03 AM

The core components of Linux include kernel, file system, shell, user and kernel space, device drivers, and performance optimization and best practices. 1) The kernel is the core of the system, managing hardware, memory and processes. 2) The file system organizes data and supports multiple types such as ext4, Btrfs and XFS. 3) Shell is the command center for users to interact with the system and supports scripting. 4) Separate user space from kernel space to ensure system stability. 5) The device driver connects the hardware to the operating system. 6) Performance optimization includes tuning system configuration and following best practices.

Linux Architecture: Unveiling the 5 Basic ComponentsLinux Architecture: Unveiling the 5 Basic ComponentsApr 20, 2025 am 12:04 AM

The five basic components of the Linux system are: 1. Kernel, 2. System library, 3. System utilities, 4. Graphical user interface, 5. Applications. The kernel manages hardware resources, the system library provides precompiled functions, system utilities are used for system management, the GUI provides visual interaction, and applications use these components to implement functions.

Linux Operations: Utilizing the Maintenance ModeLinux Operations: Utilizing the Maintenance ModeApr 19, 2025 am 12:08 AM

Linux maintenance mode can be entered through the GRUB menu. The specific steps are: 1) Select the kernel in the GRUB menu and press 'e' to edit, 2) Add 'single' or '1' at the end of the 'linux' line, 3) Press Ctrl X to start. Maintenance mode provides a secure environment for tasks such as system repair, password reset and system upgrade.

Linux: How to Enter Recovery Mode (and Maintenance)Linux: How to Enter Recovery Mode (and Maintenance)Apr 18, 2025 am 12:05 AM

The steps to enter Linux recovery mode are: 1. Restart the system and press the specific key to enter the GRUB menu; 2. Select the option with (recoverymode); 3. Select the operation in the recovery mode menu, such as fsck or root. Recovery mode allows you to start the system in single-user mode, perform file system checks and repairs, edit configuration files, and other operations to help solve system problems.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version