1、指定脚本解释器
#!/bin/sh
#!/bin/bash
#!/usr/bin/env bash
2、Hello World!
#!/usr/bin/env bash
echo "Hello, world!"
3、执行shell脚本的5种方式,其中后两种,需要先使脚本有执行权限
sh /path/to/script.sh
bash /path/to/script.sh
source /path/to/script.sh
chmod +x /path/to/script.sh #使脚本具有执行权限
./script.sh
/path/to/test.sh
4、单行注释和多行注释
# echo "这是单行注释"
:<<EOF
echo "这是多行注释1"
echo "这是多行注释2"
echo "这是多行注释3"
EOF
5、echo命令
# 输出普通字符串
echo "hello, world"
# 输出含转义符的字符串
echo "hello, \"zp\""
# 输出含变量的字符串
name=zp
echo "hello, \"${name}\""
# 输出含换行符的字符串
echo "YES\nNO"
echo -e "YES\nNO"
# 输出含不换行符的字符串
echo "YES\c"
echo "NO"
echo -e "YES\c"
echo "NO"
# 输出重定向至文件
echo "test" > test.txt
# 输出执行结果
echo `pwd`
6、变量
# 普通变量
word="hello"
echo ${word}
# 只读变量
rword="hello"
echo ${rword}
readonly rword
# 删除变量
dword="hello"
echo ${dword}
unset dword
echo ${dword}
7、环境变量
echo $HOME
echo $PATH
echo $PWD
echo $RANDOM
echo $UID
echo $PS1
echo $PS2
8、字符串
name1='white'
str1='hello, '${name1}''
str2='hello, ${name1}'
echo ${str1}_${str2}
name2='black'
str3="hello, "${name2}""
str4="hello, ${name2}"
echo ${str3}_${str4}
text="12345"
echo ${#text}
text="12345"
echo ${text:2:2}
9、数组(整型)
nums=([0]=10 [1]=11 [2]=12)
echo ${nums[0]}
echo ${nums[1]}
echo ${nums[2]}
echo ${nums[*]}
echo ${nums[@]}
echo ${nums[@]:0:2}
echo ${#nums[*]}
nums=(1 2 3 "${nums[@]}" 4 5)
echo ${nums[*]}
unset nums[3]
echo ${nums[*]}
10、数组(字符)
colors=(red yellow "dary blue")
echo ${colors[0]}
echo ${colors[1]}
echo ${colors[2]}
echo ${colors[*]}
echo ${colors[@]}
echo ${colors[@]:0:2}
echo ${#colors[*]}
colors=(aaa bbb ccc "${colors[@]}" ddd eee)
echo ${colors[*]}
unset colors[2]
echo ${colors[*]}