`
hanqunfeng
  • 浏览: 1541914 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

程序员必知必会----linux常用命令之七【shell编程】

 
阅读更多

#!/bin/sh:指定执行脚步的shell

#:注释行

 

1.设置变量:

s1="content"

s2=$s1

s3="${s1}_test"

s4=`date`

 

 

 

 

2.特殊变量

$0:这个程序的文件名

$n:第n个参数,n=1-9

$*:这个程序的所有参数

$#:这个程序的参数个数

$$:这个程序的PID

$?:执行上一个命令的返回值,0:success 非0:error

 

还有一个特殊用法,打印长度:

var=1234567890

echo ${#var}

10

 

3.从键盘读入数据

read 变量:此时会等待用户键入变量值

read 变量1 变量2 变量3:可以设置多个

 

4.算术运算

expr 3 + 5

expr $var - 5

expr 100 / 5

expr 2 \* 4 :*号要进行转意

 

expr `expr 5 + 7` / 3

var1 = `expr 3 + 5`

expr \( 3 + 5 \) / 2 :括号要转意

 

bash中,变量自增的五种方法:

i=0

1. i=`expr $i + 1`

2. let i+=1

3. ((i++))

4. i=$[$i+1]

5. i=$(( $i + 1 ))

 

 

5.测试语句test == [ ]

1)字符串

str1 = str2 :测试字符串是否相等

str1 != str2 :测试字符串是否不等

-z str :测试字符串是否为空

-n str :测试字符串是否不为空

 

2)整数

int1 -eq int2 :测试整数是否相等

int1 -ge int2 :测试是否大于等于

int1 -gt int2 :测试是否大于

int1 -le int2 :测试是否小于等于

int1 -lt int2 :测试是否小于

int1 -ne int2 :测试是否不相等

 

3)文件

-d file :是否为目录

-f file :是否为常规文件

-x file :是否可执行

-r file :是否可读

-w file :是否可写

-a file :是否存在

-s file :文件大小是否非0

 

6.流程控制

exit 0 :正常退出

exit 1 :非0,非正常退出

 

-a :逻辑与,两个条件同时成立,结果为真

-o :逻辑或,两个条件只要有一个成立,结果为真

 

7.if条件判断

if [ -d $file ];then

…………

fi

 

if [ -d $file ];then

…………

else

…………

fi

 

 

if [ -d $file ];then

…………

elif [ -f $file ];then

…………

else

…………

fi

 

if [ -d $file -o -f $file ];then

…………

fi

 

8.for循环

for 变量 in 列表

do

……

done

 

例子:

for day in Sun Mon Tue Wed Thu Fri Sat

do 

echo "The day is : $day"

done

 

for line in `cat file`

do 

echo $line

done

 

9.select选项列表

select把关键字中的每一项做成类似表单,以交互执行do和done之间的命令

 

select 变量 in 关键字

do 

command1

command2

……

done

 

例子:select.sh

select var in "Linux" "UNIX" "Windows" "Other"

do

echo "You have selected $var"

break

done

显示结果:

# sh select.sh 

1) Linux

2) UNIX

3) Windows

4) Other

#? 1

You have selected Linux

 

10.case条件匹配

case 变量 in

字符串1)命令列表

;;

字符串2)命令列表

;;

*) 命令列表 :其它情况

;;

esac

 

例子:

var="start"

case "$var" in  

start)  

echo "start"

;;  

reload)  

echo "reload"

;;  

stop)  

echo "stop"  

;;  

status)  

echo "status"

;;  

*)  

echo "$0: Usage: $0 {start|status|stop|reload}"  

exit 1  

;;  

esac  

 

 

 

11.while循环

int1=0

while [ $int1 -le 100 ]

do

echo $int1

int1=`expr $int1 + 1`

done

 

12.until循环:类似while,不同点时条件判断为假时才执行

int1=100

until [ $int1 -eq 0 ]

do

echo $int1

int1=`expr $int1 - 1`

done

 

 

13.跳出循环

break:跳出整个循环

continue:跳过本次循环,进行下次循环

 

14.shift指令

每执行一次,参数序列顺序左移一个位置,$#的值减1,移出去的参数不在可用

例子:参数为 1 2 3 4 5

#!/bin/sh

if [ $# -le 0 ]

then

echo "Not enough parameters"

exit 0

fi

sum=0

while [ $# -gt 0 ]

do

sum=`expr $sum + $1`

shift #因为每次执行shift,所以上面的$1永远都是下一个参数

done

echo $sum

 

15.函数

函数定义:

函数名 (变量1,变量2,……)

{

命令序列

}

变量均为全局变量,shell没有局部变量,函数的变量参数在方法体内引用时$1,$2,……

例子:

stop() {

        echo -n $"Stopping $prog: "

        killall nginx

RETVAL=$?

        echo

        [ $RETVAL = 0 ] && rm -f $nginx_pid /var/lock/subsys/$prog

}

 

 

函数调用:

函数名

 

case "$1" in

stop)

        stop

        ;;

 

*)

        echo $"Usage: $0 {start|stop|reconfigure|status}"

        exit 1

esac

 

 

16.脚步调试

sh -x 脚步:执行脚步,并显示全部过程

 

sh -n 脚步:不执行脚步,只检查语法错误

 

17.dos2unix

如果在windows环境下编写的脚步,上传到linux后需要先执行dos2unix进行编码转换,否则不能正确执行

 

dos2unix *.sh

 

 

18.cut 字符串切分

-d : 指定分隔符

-f:取分割后的第几项,从1开始

例如:

newlist文件格式:注意(windows上传到linux时,需要先对文件执行dos2unix)

redis简介及使用pdf(影印版).pdf#/usr/local/ea97efab-264c-4e04-a6b8-5740b752d809

目标是将『#』后面的文件路径拷贝到指定的路径下并命名为『#』前面的文件名

for line in `cat newlist`
do 
#echo $line
filename=`echo "$line" | cut -d '#' -f 1`
filepath=`echo "$line" | cut -d '#' -f 2`
echo $filename
echo $filepath
echo "cp ${filepath} ./filedir/${filename}"
cp $filepath "./filedir/${filename}"
done

 

 

分享到:
评论

相关推荐

    程序员必知必会linux基础知识

    用户必知必会的Linux常用命令之【基础命令】包括了对文件和目录的创建、删除、移动、复制等操作的命令。这些是进行Linux系统日常维护和操作时,使用频率最高的命令。 【vim】作为程序员的编辑器,是Linux系统中必不...

    Linux与UNIX Shell编程指南.rar

    本文将深入探讨Linux与UNIX Shell编程的基础知识,包括Shell的类型、基本命令、变量、流程控制、函数以及一些实用技巧。 首先,我们需要了解Shell的种类。在Linux和UNIX世界中,常见的Shell有Bash(Bourne Again ...

    绝版经典《Linux与UNIX Shell编程指南》中文PDF版

    《Linux与UNIX Shell编程指南》是一本深受程序员和系统管理员喜爱的经典著作,它详细阐述了在Linux和UNIX操作系统中如何高效地使用Shell进行脚本编程。Shell编程是Linux和UNIX系统管理的重要工具,也是自动化任务...

    linux主要shell命令详解

    在进行shell编程时,用户可以利用shell提供的脚本语言进行编程。这种脚本语言支持高级编程语言常见的元素,包括函数、变量、数组和控制结构等。由于其易学易用的特点,用户可以轻松地将提示符下输入的命令转换成可...

    超强版linux程序员手册

    《超强版Linux程序员手册》是一本全面覆盖Linux操作系统下编程和系统管理的综合资源,旨在为程序员提供详尽且实用的指南。无论你是初学者还是经验丰富的开发者,这本书都将是你在Linux开发领域的得力助手。 手册的...

    linux编程白皮书和程序员指南

    《Linux编程白皮书和程序员指南》是一本深入浅出的教程,旨在为读者提供Linux系统的基础知识以及系统编程的核心概念。Linux操作系统以其开源、稳定和高效的特点,被广泛应用于服务器、嵌入式设备和各种开发环境。这...

    LINUX与UNIX SHELL编程指南

    本文将详细阐述Linux Shell编程的关键知识点,包括基本概念、语法特性、常用命令以及高级技巧。 首先,了解Shell是什么至关重要。Shell是Linux和Unix系统中的一个命令解释器,它提供了一个交互式的环境,用户可以...

    Unix & Linux Shell 编程.pdf

    Shell作为Unix和Linux操作系统中最常用的命令行界面和脚本语言,对于系统管理员、程序员以及对系统操作有深入需求的用户来说,是必备的技能之一。这本书详细介绍了如何利用Shell编写高效、实用的脚本来自动化日常...

    shell编程(超经典)

    ### Shell编程:Linux下的必学技能 在IT领域,尤其是对于系统管理员、开发人员和运维工程师而言,掌握Shell编程是通往高效操作Linux系统的钥匙。Shell编程不仅能够自动化日常任务,提高工作效率,还能深入理解Linux...

    嵌入式操作系统:第5章 Linux Shell编程.ppt

    Linux Shell编程是Linux操作系统中一个至关重要的组成部分,它充当了用户与操作系统内核之间的桥梁。在本章中,我们将深入探讨Shell编程的基本概念、特点以及常见的Shell类型。 首先,理解Shell是什么至关重要。...

    linux与Unix_shell编程指南.rar

    《Linux与Unix Shell编程指南》是一本专注于操作系统交互式脚本编写的重要参考资料,适用于那些希望深入理解并利用Shell脚本来提升工作效率的用户。Shell编程是Linux和Unix系统中不可或缺的一部分,它提供了强大的...

    Linux下的程序开发:基础SHELL编程

    在Linux操作系统中,Shell编程是系统管理员和程序员日常工作中不可或缺的一部分。SHELL,尤其是Bash(Bourne-Again SHell),是Linux默认的命令解释器,它允许用户通过命令行与操作系统进行交互,同时也提供了编写...

    Shell从入门到精通、ARM嵌入式Linux系统开发详解、Linux驱动开发入门与实战、Linux网络编程、Linux系统移植......

    "Linux命令、编辑器与Shell编程"着重于提高用户在命令行的效率,如熟练使用vi/vim编辑器,编写Shell脚本自动化任务,以及掌握各种常用的Linux命令。 "Linux服务器架设指南"可能包含如何搭建Web服务器、邮件服务器、...

    LINUX与UNIX SHELL编程指南(最新)

    《LINUX与UNIX SHELL编程指南》是一本深入讲解Linux和Unix系统中Shell编程的权威教程,适合初学者和有经验的程序员。Shell是Linux和Unix操作系统中的命令解释器,它提供了一个用户与操作系统内核交互的接口。通过...

    shell常用命令

    对于初学者和中级程序员来说,掌握Shell的常用命令是必备技能。以下是一些关键的Shell命令及其用途: 1. **流程控制命令**: - `if` 语句:根据条件执行不同的代码块。例如: ```bash if [ -e file ]; then ...

    Shell Programming in Unix Linux and OS X(4th) 英文pdf 第4版

    标题《Shell Programming in Unix Linux and OS X》(第四版)揭示了在Unix、Linux以及OS X操作系统中进行Shell编程的相关知识点。本书由Stephen G. Kochan与Patrick Wood合著,其第四版涵盖了在这些系统环境下,...

    《Linux编程》电子课件.rar

    3. **shell编程**:Linux的命令行界面,shell是与操作系统交互的重要工具。学习shell脚本编写,可以提高工作效率,执行自动化任务。 4. **文件和目录操作**:包括文件的创建、读写、删除、权限管理以及目录的管理。...

    linux 网络变成 和c的编程

    "ubuntu下使用VI编辑文件必知的常用命令"则讲述了如何使用VI(Vim)这个强大的文本编辑器。VI是Linux世界中必备的文本编辑工具,熟练掌握其操作可以极大提升开发效率。 "多进程编程的相关知识总结(二).mht"可能是...

    shell linux unix ksh

    在Shell编程中,掌握基本的命令行操作是至关重要的,例如目录导航(cd)、文件操作(ls、cp、mv、rm)、管道(|)和重定向(>、<、>>)。KSH还支持流程控制语句,如if-else、for、while循环,以及函数定义,使得编写...

Global site tag (gtag.js) - Google Analytics