8 useful shell scripts to share _linux shell

Source: Internet
Author: User
Tags gz file

A few examples of shell scripts, it feels good.

"Example: 001" to judge the input as a number, character or other

Copy Code code as follows:

#!/bin/bash
Read-p "Enter a number or string here:" Input

Case $input in
[0-9]) echo-e "Good job, Your input is a numberic! \ n ";;
[A-za-z]) Echo-e "Good job, Your input is a character! \ n ";;
*) echo-e "Your input is wrong, input again! \ n ";;
Esac

"Example: 002" asking for an average
Copy Code code as follows:

#!/bin/bash

# Calculate The average of a series of numbers.

Score= "0"
Average= "0"
sum= "0"
num= "0"

While true; Todo

Echo-n "Enter your score [0-100%] (' Q ' for quit):"; Read SCORE;

if (("$SCORE" < "0")) | | (("$SCORE" > "100")); Then
echo "be serious." Common, try again: "
elif ["$SCORE" = = "Q"]; Then
echo "Average rating: $AVERAGE%."
Break
Else
sum=$[$SUM + $SCORE]
num=$[$NUM + 1]
average=$[$SUM/$NUM]
Fi

Done

echo "Exiting."

"Example: 003" self-minus output
Copy Code code as follows:

[Scriptname:doit.sh]
while (($# > 0))
Todo
Echo $*
Shift
Done

/>./doit.sh a b c d E
A b c d E
b c D E
C d E
D E
E

"Example: 004" Add a prefix to a file
Copy Code code as follows:

# List of names
# Cat NameList
Jame
Bob
Tom
Jerry
Sherry
Alice
John

# Script Program
# Cat Namelist.sh
#!/bin/bash
For name in $ (cat namelist)
Todo
echo "Name=" $name
Done
echo "The name is out of namelist file"

# Output Results
#./namelist.sh
Name= Jame
Name= Bob
Name=, Tom.
Name= Jerry.
Name= Sherry
Name= Alice
Name= John

"Example: 005" Does the bulk test file exist

Copy Code code as follows:

[Root@host ~]# Cat testfile.sh
#!/bin/bash


For file in test*.sh
Todo
If [f $file];then
echo "$file existed."
Fi
Done

[Root@host ~]#./testfile.sh
Test.sh existed.
Test1.sh existed.
Test2.sh existed.
Test3.sh existed.
Test4.sh existed.
Test5.sh existed.
Test78.sh existed.
Test_dev_null.sh existed.
Testfile.sh existed.

Example: 005 populating the hard disk with the specified size file
Copy Code code as follows:

[Root@host ~]# Df-ih/tmp
FileSystem inodes iused ifree iuse% mounted on
/dev/mapper/vg00-lvol5
1000K 3.8K 997K 1%/tmp
[Root@host ~]# Cat cover_disk.sh
#!/bin/env Bash
Counter=0
max=3800
Remainder=0
While True
Todo
((counter=counter+1))
If [${#counter}-gt $max];then
Break
Fi
((remainder=counter%1000))
If [$remainder-eq 0];then
Echo-e "counter= $counter \tdate=" $ (date)
Fi
Mkdir-p/tmp/temp
Cat < Testfile > "/tmp/temp/myfile. $counter"
If [$?-ne 0];then
echo "Failed to write file to Disk."
Exit 1
Fi
Done
echo "done!"
[Root@host ~]#./cover_disk.sh
counter=1000 date= Wed Sep 09:20:39 HKT 2014
counter=2000 date= Wed Sep 09:20:48 HKT 2014
counter=3000 date= Wed Sep 09:20:56 HKT 2014
Cat:write error:no spaces left on device
Failed to write file to Disk.
DD If=/dev/zero of=testfile bs=1m count=1

"Example: 006" reads a configuration file by traversing the method
Copy Code code as follows:

[Root@host ~]# Cat Hosts.allow
127.0.0.1
127.0.0.2
127.0.0.3
127.0.0.4
127.0.0.5
127.0.0.6
127.0.0.7
127.0.0.8
127.0.0.9
[Root@host ~]# Cat readlines.sh
#!/bin/env Bash
I=0
While Read Line;do
hosts_allow[$i]= $LINE
((i++))
Done < Hosts.allow
For ((i=1;i<=${#hosts_allow [@]};i++)); Todo
echo ${hosts_allow[$i]}
Done
echo "Done"
[Root@host ~]#./readlines.sh
127.0.0.2
127.0.0.3
127.0.0.4
127.0.0.5
127.0.0.6
127.0.0.7
127.0.0.8
127.0.0.9
Done

"Example: 007" Application of simple regular expressions
Copy Code code as follows:

[Root@host ~]# Cat regex.sh
#!/bin/env SH
#Filename: regex.sh
Regex= "[A-za-z0-9]{6}"
if [[$ =~ $regex]]
Then
Num=$1
Echo $num
Else
echo "Invalid Entry"
Exit 1
Fi
[Root@host ~]#./regex.sh 123abc
123abc

#!/bin/env Bash
#Filename: validint.sh
Validint () {
Ret= ' echo $ | awk ' {start = match ($1,/^-?[ 0-9]+$/); if (start = = 0) print "1"; else print "0"} '
Return $ret
}

Validint $

If [$?-ne 0]; Then
echo "Wrong Entry"
Exit 1
Else
echo "ok! Input number is: "$
Fi

"Example: 008" Simple backup files by date
Copy Code code as follows:

#!/bin/bash

now=$ (date + "%m-%d-%y") # Current date
File= "Backup. $NOW. tar.gz" # Back up files
echo "Backing up data to/tmp/backup. $NOW. tar.gz file, please wait ..." #打印信息
Tar xcvf/tmp/backup. $NOW. tar.gz/home//etc//var # Simultaneously back up multiple files to the specified tar compressed file
echo "Done ..."

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.