linux 脚本 &&,linux shell脚本 && 和 ||及变量说明

一、&& 和|| 在shell脚本中用于命令执行控制的功能。

例如:当下一个执行的命令依赖于上一个命令执行的结果时,可以通过&&和||实现。

语法格式:

command1 && command2 [&& command3 …]

command1 || command2 [|| command3 …]

1、命令之间使用 && (||)连接,实现逻辑与(或)的功能。

2、对于&&,只有在 && 左边的命令返回真的情况下,&& 右边的命令才会被执行。只要有一个命令为假,后面的命令都不会执行,即:短路的功能 。

3 、对于||有点不同于常规语法的“或“的功能,它是表示:只有在 || 左边的命令返回假,|| 右边的命令才会被执行。但是,只要有一个命令返回真,后面的命令就不会被执行,即:一直会运行到返回为真的命令时才会停止执行。

二、linux脚本运行时常会用到一些变量,大致如下:

$$:Shell本身的PID(ProcessID)

$!:Shell最后运行的后台Process的PID

$?:最后运行的命令的结束代码(返回值)

$-:使用Set命令设定的Flag一览

$*:所有参数列表。用”$1” “$2” … “$n” 来获取参数值。

$@:所有参数列表。用”$1” “$2” … “$n” 来获取参数值。

$#:添加到Shell的参数个数

$0:Shell本身的文件名

$1~$n:添加到Shell的各参数值。$1是第1参数、$2是第2参数…。

e.g.:#!/bin/bash

echo “File Name: $0”;

echo “First Parameter : $1”;

echo “First Parameter : $2”;

echo “Quoted Values: $@”;

echo “Quoted Values: $*”;

echo “Total Number of Parameters : $#”

运行结果:

$./test.sh Zara Ali

File Name : ./test.sh

First Parameter : Zara

Second Parameter : Ali

Quoted Values: Zara Ali

Quoted Values: Zara Ali

Total Number of Parameters : 2

三、∗和@ 的区别

∗和@ 都表示传递给函数或脚本的所有参数,不被双引号(” “)包含时,都以”1""2” … “$n” 的形式输出所有参数。

但是当它们被双引号(” “)包含时,”∗"会将所有的参数作为一个整体,以"1 2…n”的形式输出所有参数;”@"会将各个参数分开,以"1” “2"…"n” 的形式输出所有参数。

e.g.:#!/bin/bash

echo “$*=” ∗echo“\”$∗\”=”“*”

echo “$@=” @echo“\”$@\”=”“@”

echo “print each param from $*”

for var in ∗doecho“var”

done

echo “print each param from $@”

for var in @doecho“var”

done

echo “print each param from \”$*\””

for var in “∗”doecho“var”

done

echo “print each param from \”$@\””

for var in “@”doecho“var”

done

执行 ./test.sh “a” “b” “c” “d”,看到下面的结果:

∗=abcd“*”= a b c d

@=abcd“@”= a b c d

print each param from ∗abcdprinteachparamfrom@

a

b

c

d

print each param from “∗”abcdprinteachparamfrom“@”

a

b

c

d

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值