Ongoing: Bash Script Skills


Running documentation for bash script logging

Control Flow

If Statement

if [[ expr ]]; then
	commands;
fi

For Loop

for index in series; do
	commands
done

Case Switch

case expr in
	expr1-1|expr1-2)
		commands
		;;
	esac

Break and continue

break [n]; continue [n] for breaking/continuing n layer loops counting from inside, default is 1.[] is often used to represent optional arguments.

String Operation

String Slice

${string:init:length} Notice the second index is length of slice, not end of slice.

String compare

[[ string1 == stirng2 ]].
Specially, [[ string1 == *string2* ]] check if string2 is contained in string1.

Syntax

Conditional Expression

[[ expr ]] Make sure space is placed inside the double bracket。

Redirect

Dependencies

Functions defined from other files can be used locally after sorcing the library bash script. The function will be added to the FUNCNAME array and the path to the file will be added to the BASH_SOURCE array.

Notice that source runs the bash script in the current shell process, whereas execute runs the bash script in a new shell process, where current dynamic environment will be lost. Thus, the dependencies for source and for execute must be handled differently

For example, suppose there are three bash scripts A, B and C. where A is the entry point, B is a process to be run, and C is a lib script with an api example used in B.

  • If B is sourced by A, then the environment maintains, thus the lib C can be sourced either by A or B;
  • If B is executed by A, then the environment refreshes, and lib C must be sourced by B to be defined.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值