还是采用我最习惯的案例学习法,一步步成为bash高手。案例1,学习要点包括:如何构建一个函数如何声明一个变量如何进行条件判断#!/usr/bin/env bash#函数声明realpath () {(
还是采用我最习惯的案例学习法,一步步成为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=15declare decimal=15declare -i int_octal=017declare octal=017if [ "$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 ]] 更加智能一些,解析得比较彻底