一、&& 和|| 在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
三、
但是当它们被双引号(” “)包含时,”
e.g.:#!/bin/bash
echo “$*=”
echo “$@=”
echo “print each param from $*”
for var in
done
echo “print each param from $@”
for var in
done
echo “print each param from \”$*\””
for var in “
done
echo “print each param from \”$@\””
for var in “
done
执行 ./test.sh “a” “b” “c” “d”,看到下面的结果:
print each param from
a
b
c
d
print each param from “
a
b
c
d