还是采用我最习惯的案例学习法,一步步成为bash高手。
- 案例1,学习要点包括:
- 如何构建一个函数
- 如何声明一个变量
- 如何进行条件判断
#!/usr/bin/env bash
#函数声明
realpath () {
(
# $1是传给函数的参数
TARGET_FILE="$1"
FIX_CYGPATH="$2"
# dirname,求的是目录名称
cd "$(dirname "$TARGET_FILE")"
# basename 求的是执行命令的名称,去掉前面的目录名
TARGET_FILE=$(basename "$TARGET_FILE")
)
}
#声明一个变量, -i=整型变量
declare -i int_decimal=15
declare decimal=15
declare -i int_octal=017
declare octal=017
if [ "$decimal" -eq "$octal" ]
then
echo "$decimal equals $octal"
else
echo "$decimal is not equal to $octal" # 此行被执行
fi # [ single brackets ] , 不会对变量进行完全的解析,所以shell认为15和017是不相等的。
if [ "$int_decimal" -eq "$int_octal" ]
then
echo "$int_decimal equals $int_octal" #此行被执行
else
echo "$int_decimal is not equal to $int_octal"
fi # 当明确指明变量是整型时,8进制和10进制数,在被判断之前,就处理好了,比较时自然相等。
if [[ "$decimal" -eq "$octal" ]]
then
echo "$decimal equals $octal" # 此行被执行
else
echo "$decimal is not equal to $octal"
fi # [[ double brackets ]] 更加智能一些,解析得比较彻底