Linux shell (二)

本文介绍了Shell脚本的基础知识,包括变量赋值、数学运算、条件判断、文件属性比较等核心概念,并提供了实用的示例代码。

下面我将列出shell中比较常用的命令及操作:

1:赋值命令

var=7 or var=/home/test/* or var=/home/icon(!!!不能再等号旁边加空格)

2:使用变量或者设置变量要加入$修饰符:

test=$var //test=7

: 进行数学运算的赋值动作:

test=$[ $var + 8 ]   //注意[]里面左右一定要加空格不然会报错(以为新司机的忠告)

: 表示输入的参数值

$0:表示文件名,$1:表示输入的第一个参数,$2,$3,依次类推

: 表示参数数量的语句 $#

假如有./index.sh  5 8 9 0 0 9

那么$#输出就是6

: $()格式:

                testing=`date`

                testing=$(date)将会输出输出当前时间

   e: $'\n' 

              在改变字段的分隔符的时候用到$'\n'

      表示会以换行符为分割字符的依据

关于$的用户就总结到这,以后遇到再补上

3:比较变量:

  a: 比较数值型的变量:利用-gt(greate than)  -lt(letter than) -eq(equal) -ne(not equal) 比较变量之间的大小关系:

  例如:

 

#!/bin/bash
  		var=3
 		 if [ $var -gt 2 ]
		 	then
 			echo "var is bigger than 2"
		else
			echo "var is letter than 2"
		fi

上面的代码就是比较两个数值的大小关系

b:比较字符串:

#!/bin/bash
 	 var="adc"
  	str="bcd"
	f [ $var \> $str]
	then
		echo "var is bigger than str"
	else
		echo "var is letter than str"

  添加-n 和-z可以检查一个变量是否有数据:

#!/bin/bash
 	 var="adc"
  	str="bcd"
	if [ -n $var ]
	then
		echo "var is not empty"
	else
		echo "var is empty"
         
	if [ -z $str ]
	then
		echo "str is not empty"
	else
		echo "str is empty"
4:比较文件

test命令的文件比较功能

-d file是否存在这一个目录

-e file检查file是否存在

-f file是否存在这一个文件

-r file该文件是否可读

-s file 该文件是否为非空

-w file 该文件是否可读

-x file 该文件是否可以执行

-O file 检查file是否存在并属于当前用户所有

-G file是否存在并且默认组与当前用户形同

file1 -nt file2检查file1 是否比file2新

file1 -ot file2检查file1 是否比file2新

5:结构化命令

a: if-then-else命令

前面相关代码已经有所演示:注意if [ ]里面的左右两边的空格一定要加上,然后就是if语句的闭合 if .....fi

b: for var in list

do

commands

done

eg:

for test in "test" "var" "beijing" "hello"
do
   echo $test
done
这里的双引号是避免如果想输出wilan ad这样由空格连着的字符而使用的,不然的话shell默认会以

1:空格 2:回车符 3:换行符作为分割字符串的依据

不过你也可以用 IFS 自定义一个分隔符样式

IFS 是shell中的环境变量可以设置为:IFS=$'\n' or IFS=$':'

c :while命令的基本格式

while test command

do

other commands

done

eg:

var=10
while [ $var -gt 0 ]
do
echo $var
var=$[ $var - 1 ]
done
d:until 命令:判断结束时候的临界点

基本格式:

until test commands

do

echo $var

done

eg:

#!/bin/bash
var=100
until [ $var -eq 0 ]
do
echo $var
var=$ [ $var - 1 ]
done
今天就写这么多得好好的消化一下子了!努力

 6:脚本的执行:

      3中方式可以执行脚本程序:source ,shscript, ./script

          a:直接执行的方式运行script,它会建立一个新的bash子进程,父进程无法获取script中的变量的值

          b:利用source来执行脚本:它是在父进程中执行的

          source test.sh

          里面的变量first,second 可以在父进程中显示 $first    $second 都是有显示的

          这也是为啥你不注销系统而要让某些写入 ~/.bashrc的设置生效时,需要使用source ~/.bashrc 而不能使用bash ~/.bashrc

         



  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值