Shell Basic
参考"Linux命令号与shell脚本编程大全(第3版)"第11章
查看当前shell
➜ shell_scripts echo $SHELL
/bin/zsh
使用多个命令
#第一种方式, 在同一行输入所有命令
➜ shell_scripts date; who
#第二种方式, 在多行输入并使用\连接多行
date;\
who
创建shell 脚本
- 在文件第一行指定shell
#!/bin/bash
- add permission
chmod u+x test1.sh
- run script
./test1.sh
引用变量
echo $HOME
echo ${HOME}
命令替换
命令替换允许你将shell命令的输出赋给变量
➜ shell_scripts testing=$(date)
➜ shell_scripts echo $testing
Sun Nov 6 00:40:07 CST 2022
➜ shell_scripts today=$(date +"%y%m%d")
➜ shell_scripts echo $today
221106
➜ shell_scripts ls -al $HOME > log.$today
➜ shell_scripts ls log.221106
log.221106
#!/bin/bash
# testing=`date`
testing=$(date)
echo "The date and time are: " $testing
数学运算
使用方括号
➜ shell_scripts var1=$[1+5]
➜ shell_scripts echo $var1
6
➜ shell_scripts var2=$[$var1 * 2]
➜ shell_scripts echo $var2
12
使用双圆括号
➜ shell_scripts val1=$(( 4*5 ))
➜ shell_scripts (( val2 = 4 * 5 ))
➜ shell_scripts printf "%6.3f\n" $val1 $val2
20.000
20.000
如果使用zsh的话可以在双圆括号里处理浮点数. 注意第一行#!/bin/zsh
#!/bin/zsh
val1=$(( 4*5.1 ))
(( val2 = 4 * 5.1 ))
printf "%6.3f\n" $val1 $val2
output
➜ shell_scripts ./shell_test.sh
20.400
20.400
查看退出状态码
➜ shell_scripts pwd
/Documents/Codes/shell_scripts
➜ shell_scripts echo $?
0
➜ shell_scripts ppp
zsh: command not found: ppp
➜ shell_scripts echo $?
127
exit命令指定退出状态码
#!/bin/bash
exit 5
output
➜ shell_scripts ./shell_test.sh
➜ shell_scripts echo $?
5