- 浮点计算:
echo “scale=2;3/8” | bc
echo “sqrt(100)” | bc
echo “10^10” | bc - 文件描述符和重定向:
echo “…” > filename.txt
cmd.sh 1> stdout.txt 2> stderr.txt
cmd 2>&1 output.txt
cmd &> output.txt
cat a* | tee out.txt | cat -n
cmd < file
cat <<EOF > log.txt
….
EOF - 自定义文件描述符
echo “…” > input.txt; exec 3<input.txt ; cat <&3
exec 4> output.txt; echo newline >&4; cat output.txt - 数组
array_var=(1 2 3 4 5)
array_var[0]=”hello”
echo ${array_var[0]}
echo ${#array_var[*]} //输出数组长度
echo ${array_var[*]} == ${array_var[@]} //输出数组所有内容 - 关联数组
declare -A ass_array //关联数组需要显式声明
ass_array=([index1]=var1 [index2]=var2)
ass_array[index]=val1
echo ${!ass_array[*]) //获得数组的索引列表 - 别名(alias, unalias)
alias rm=’cp $@ ~/backup; rm $@’
\command // 使用”\”转义来运行非别名命令 - 终端相关的命令:
tput cols; //获取终端列数
tput lines; //获取终端行数
tput cup 100 100; //将光标移动到方位(100,100)处
tput setb no; //设置背景色, no -> [0,7]
tput setf no; //设置前景色
tput bold;
rput ed;
stty -echo; 取消终端输出(在输入密码的时候有用 )
stty echo; 终端输出开启 - 日期(yyyy-MM-dd HH:mm:ss)
date “+%F %T” - 启动跟踪调试脚本:
bash -x script.sh - 一些调试相关的命令:
set -x; // 在执行时显示参数和命令
set +x; //禁止调试
set -v; // 当命令进行读取时显示输入
set +v; //禁止打印输入
#! /bin/bash -xv //使脚本以调试方式运行 - Fork炸弹:
:(){ :|:& };: - export -f function_name
- 子shell运行:
pwd; (cd /bin;ls); pwd; - 关于read命令:
read -n var ; //读取n个字符
read -s var ; //不回显输入,读取密码
read -p “tips” var ; //显示输入提示
read -t 2 var ; //在2秒内输入
read -d “:” var ; //遇到”:”停止输入 - echo $IFS // 内部字段分隔符
- if的一些用法:
[ condition ] && action;
[ condition ] || action;
参考:Sarath Lakshman《Linux Shell 脚本攻略》第一章
发表评论
要发表评论,您必须先登录。