-
#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。比如:#!/bin/bash
-
()的区别: var 与${var} 并没有啥不一样。但是用 ( ) 与
(反引号) 都是用来做命令替换用(commandsubstitution)的。
-
注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。例如:your_name=“runoob.com”
-
使用一个定义过的变量,只要在变量名前面加美元符号即可。推荐给所有变量加上花括号,这是个好的编程习惯。比如:your_name=“alibaba” echo ${your_name}
-
单引号和双引号定义字符串时的区别:
单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
双引号里可以有变量
双引号里可以出现转义字符 -
获取字符串的长度:
string=“abcd” echo ${#string} #输出 4 -
$# 传递给脚本的参数个数
-
$* 与 $@ 区别:
相同点:都是引用所有参数。
不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 “1 2 3”(传递了一个参数),而 “@” 等价于 “1” “2” “3”(传递了三个参数)。
#!/bin/bash
echo “-- $* 演示 —”
for i in “$*”; do
echo $i
done
echo “-- $@ 演示 —”
for i in “$@”; do
echo $i
done$ chmod +x test.sh
$ ./test.sh 1 2 3
– $* 演示 —
1 2 3
– $@ 演示 —
1
2
3 -
shell找的中括号用法:https://www.runoob.com/w3cnote/shell-summary-brackets.html
-
获取数组的长度: ${#my_array[*]}
-
Shell 数组用括号来表示,元素用"空格"符号分割开
-
函数与命令的执行结果可以作为条件语句使用。要注意的是,和 C 语言不同,shell 语言中 0 代表 true,0 以外的值代表 false。
最后在这儿展示一个shell脚本:
#!/bin/bash
resettem=$(tput sgr0) #将经常执行的语句定义成一个变量
declare -A ssharry #定义数组
i=0 #注意变量=等号前后没有空格
numbers=""
for script_file in `ls -I "monitor_man.sh" ./`
do
echo -e "\e[1;35m" "The Script:" ${i} '==>' ${resettem} ${script_file}
ssharry[$i]=${script_file}
echo ${script_file}
numbers="${numbers} | ${i}"
i=$((i+1)) #$(())是用于数学计算的
done
echo $numbers
while true
do
read -p "Please input a number [ ${numbers} ]:" execshell
if [[ ! ${execshell} =~ ^[0-9]+ ]]
then
exit 0
fi
/bin/sh ./${ssharry[$execshell]}
done