优秀的编程知识分享平台

网站首页 > 技术文章 正文

Shell脚本常用命令(shell常用的脚本)

nanyue 2024-07-18 03:52:22 技术文章 15 ℃

Shell

#!bin/sh 幻数

$0 : 获取当前执行的shell脚本的文件名,包括脚本路径

eg: echo $0

$n: 获取当前执行的shell脚本第n个参数值,若大于9则加大括号

eg:


sh test.sh what's your name

$*: 获取当前shell的所有参数

eg:


sh test.sh what's your name

$#: 获取当前shell 命令行中所有参数的总个数(判断参数个数)

eg:


sh test.sh what's your name

$@: 这个程序的所有参数, “$1”,”$2”,”$3”


Dirname $0 输出脚本路径

Basename $0 输出脚本名

Printf 格式化打印

Shift 移位 shift5 移5位

$!: 执行上一个指令的PID

$:获取当前shell的进程号PID

$?: 获取执行上一个指令的返回值(0为成功,1为失败)

$_: 在此之前执行的命令或脚本的最后一个参数


${#string}:取字符串长度

${#string:2:3}:取第2个字符起的后3个字符


计算器

((……)) eg:((a=2+3)) echo $a

Let eg: i=2 let i=i+8

Expr(能判断扩展名) eg: expr 2+2

Bc

$[ ] eg: echo $[ 2 + 3 ]

Read -t 10 –p “input number” a b 读入a,b变量

10s 打印出 input number

. /etc/rc.d/init.d/functions

Action “start nginx” /bin/true



-n 字符串长度为非0

-z 字符串长度为0

-eq 等于

! 取反

-ge 大于等于

-lt 小于


[ -f file ] -a与 -o 或 !非

[[ -f file ]] &&与 ||或 !非



Break n 跳出循环的层数,省略n,表示跳出整个循环

Continue n 表示退到第n层继续循环,省略n,表示忽略本次

Exit n 退出当前shell程序,n为返回值

Return n 最为函数的返回值



bash

-x 将执行的脚本内容及输出显示到屏幕上

-n 不执行脚本,检查语法是否有问题


Set –x ….. set +x 只调试Set –x 与Set +x 中间的内容

Eg: vim a.sh ,加入Set –x set +x ,执行sh a.sh ,则只调试其中间内容


若用shell编辑MySQL启动脚本,且加入开机自启动,则复制 /etc/init.d/mysqld/ 中下面两行,并粘贴在shell脚本中。

# chkconfig: 2345 64 36

# description: A very fast and reliable SQL database engine.


1、 case语句

case分支语句的格式如下:

case $变量名 in

模式1

命令序列1

;;

模式2

命令序列2

;;

*)

默认执行的命令序列 ;;

esac



eg:



2、for循环

for 变量名 in 变量

do

Done


For (( i=0;i<=100;i++ ))

Do

..

Done

eg:



If then

elif

else

fi

eg:



while 条件

do

指令

Done

eg:


Until 条件

Do

指令

Done

Tags:

最近发表
标签列表