26. 列表结构
链接多个命令
equation()
{ # core algorithm used for doubling and halving the coordinates
[[ ${cdx} ]] && ((y=cy+(ccy-cdy)${2}2))
eval ${1}+=\"${x} ${y} \"
}#!/bin/bash
# and list
if [ ! -z "$1" ] && echo "Argument #1 = $1" && [ ! -z "$2" ] && \
# ^^ ^^ ^^
echo "Argument #2 = $2"
then
echo "At least 2 arguments passed to script."
# 链条内的所有命令都返回 true。
else
echo "Fewer than 2 arguments passed to script."
# 链条内至少有一个命令返回 false。
fi
# 注意: "if [ ! -z $1 ]" 是好用的,但是宣传与之等同的
# "if [ -n $1 ]" 并不好用。
# 不过,用引号就能解决问题,
# "if [ -n "$1" ]" 好用(译者注:原文本行内第一个引号位置错了)。
# ^ ^ 小心!
# 被测试的变量放在引号内总是最好的选择。
# 下面的代码功能一样,用的是“纯粹”的 if/then 语句。
if [ ! -z "$1" ]
then
echo "Argument #1 = $1"
fi
if [ ! -z "$2" ]
then
echo "Argument #2 = $2"
echo "At least 2 arguments passed to script."
else
echo "Fewer than 2 arguments passed to script."
fi
# 比起用“and 列表”要更长、更笨重。
exit $?最后更新于

