pw.sh

来自「Shall高级编程」· Shell 代码 · 共 49 行

SH
49
字号
#!/bin/bash# May need to be invoked with  #!/bin/bash2  on older machines.##  Random password generator for Bash 2.x +#+ by Antek Sawicki <tenox@tenox.tc>,#+ who generously gave usage permission to the ABS Guide author.## ==> Comments added by document author ==>MATRIX="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"# ==> Password will consist of alphanumeric characters.LENGTH="8"# ==> May change 'LENGTH' for longer password.while [ "${n:=1}" -le "$LENGTH" ]# ==> Recall that := is "default substitution" operator.# ==> So, if 'n' has not been initialized, set it to 1.do	PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}"	# ==> Very clever, but tricky.	# ==> Starting from the innermost nesting...	# ==> ${#MATRIX} returns length of array MATRIX.	# ==> $RANDOM%${#MATRIX} returns random number between 1	# ==> and [length of MATRIX] - 1.	# ==> ${MATRIX:$(($RANDOM%${#MATRIX})):1}	# ==> returns expansion of MATRIX at random position, by length 1. 	# ==> See {var:pos:len} parameter substitution in Chapter 9.	# ==> and the associated examples.	# ==> PASS=... simply pastes this result onto previous PASS (concatenation).	# ==> To visualize this more clearly, uncomment the following line	#                 echo "$PASS"	# ==> to see PASS being built up,	# ==> one character at a time, each iteration of the loop.	let n+=1	# ==> Increment 'n' for next pass.doneecho "$PASS"      # ==> Or, redirect to a file, as desired.exit 0

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?