龙空技术网

Shell脚本学习笔记

小菜鸟学前端 1682

前言:

如今看官们对“ubuntushell变量”大体比较注意,小伙伴们都需要了解一些“ubuntushell变量”的相关知识。那么小编同时在网上网罗了一些有关“ubuntushell变量””的相关文章,希望姐妹们能喜欢,小伙伴们一起来学习一下吧!

格式:

#! /bin/bash

...

exit 0

Linux(Ubuntu)默认使用bash程序,其中exit 0表示脚本执行成功

与终端交互

#从终端读取参数,会从当前行阻塞

read var

#向终端打印hello

echo “hello”

Shell系统变量

$? :表示保存前一个命令的返回值

$0 :当前程序名

$1 :第一个参数

$2 :第二个参数

$n :第n个参数

$# :保存参数的个数

$* : 以("$1 $2 …")的形式保存所有输入的命令行参数(保留输入区分隔符)。

$@ : 以("$1" "$2" …)的形式保存所有输入的命令行参数(不保留输入区分隔符)。

$HOME 当前用户的登录目录

$PATH 当前系统命令的搜索目录清点

$PS1 命令提示符,通常是“$”字符

$PS2 辅助提示符,通常是“>”字符

$IFS 输入区的分割符,通常是空格、制表符、换行符.

定义变量并取值

var=hello 注意这里赋值时必须要紧挨着等号,否则会不认识

$var :表示取变量值: hello

${var} :也是取变量的值:hello ,之所以带花括号,是为了区别变量名与字符串中内容冲突的情况

var=hello

echo "${var}iable" 这种情况打印:helloiable

echo "$variable" 这种情况打印为空字符串,因为variable变量我们没有定义

加入我们之前定了var变量,我们又想打印"$var"这个字面值,而不是打印变量var的内容,我们应该在$前面使用转义符"\"

\${var} :将打印"${var}"

\$var :将打印"$var"

i=`expr $i + 1` :取变量i的值并加1,然后赋值给i,注意这里使用的是反引号而不是单引号

$(($i+1)) :与上边的效果相同,也是表达式赋值

var=$(cmd 参数) : 执行系统命令,将其打印的结果保存到var变量中

其中cmd是Linux系统的shell命令

字符串判断表达式

[html] view plain copy

相等 str = str2 注意这里 两个字符串与等号隔开,否则会认为是赋值 不等 str != Str2 非空 N str 空 Z str

算数表达式

[html] view plain copy

相等 data1 eq data2 不相等 data1 Ne data2

对文件的操作

[html] view plain copy

为目录文件 -d file 是否为空文件 -s file 文件存在 -e file 普通文件存在 -f file

是否设置了组权限、用户权限

[html] view plain copy

-g file -u file

是否可读、可写、可执行

[html] view plain copy

-r file -w file -x file

条件语句

if [ expression ] # 中括号内必须为表达式expression

then

echo “123”

else

echo "456"

fi

test 命令替代中括号

if test -f android.c

then

echo "exist"

else

echo "not exist"

fi

echo "please input yes/no"

read var

if [ ${var} = "yes" ]

then

echo "data yes"

elif [ ${var} = "no" ]

then

echo "data no"

else

echo "input data is: "${var}

fi

For循环语句

for item in ${list} #循环从list中读取到item变量中

do

echo ${item}

done

While 循环

while [ “123” = “123” ]

do

echo “hello”

done

分之语句

case ${var} in

"yes") echo "world";; #注意这里必须双分号结束.

"no") echo "hello";;

*) echo "****";; #匹配所有字符串,必须放到最后面

esac

Until语句

read var

until [ $var = "hello" ] 条件为真则跳出循环

do

read var

done

函数

function_name()

{

echo “第一个参数$1”

echo “第二个参数$2”

echo “第三个参数$3”

}

#调用函数,并传递三个参数,函数必须在调用前定义,且必须有函数体.

function_name 1 2 3

*脚本调试

[html] view plain copy

sh -n <script> 检查脚本语法是否有错 sh -v <script> 执行每条脚本语句前,并打印本条脚本语句,并回显执行结果 sh -x <script> 执行每条脚本语句后,并打印本条脚本语句,并回显执行结果

标签: #ubuntushell变量