日期:2025/04/08 04:46来源:未知 人气:53
set
控制bash运行
set -b,- 号一般为打开功能,+ 号为关闭功能,对设置位置之后的命令有效
-a,设置之后,后面在设置或者变更的变量自动export到子进程,默认bash的变量不能被子进程共享,除非用 export 明确导出
-b,当后台作业完成时,主动报告,输出到标准输出,set +b,关闭后台作业完成报告,下次执行命令时提示任务完成
-e,在-e设置之后所有执行的命令,不允许出错(命令执行的返回值$?不等于0,则命令出错),出错后脚本直接退出,后面的命令不再执行
-n,不执行,只检查语法,这个选项只在脚本中有效
-o vi,使用vi作为命令行编辑器,默认ctrl+a把光标调到命令行首字母,-o vi后,就可以用vi的快捷键0把光标调到命令行首字母上
printf
类似于c语言的printf函数
str=$(printf "%10s" " ")
echo "${str// /*}"
打印10个*号
printf "%-10.2f" 99.99,%格式化前导符,-表示左对齐,默认会右对齐,f表示浮点数,会四舍五入,10.2表示最短10位,保留两位小数
printf "%o" 10,打印10的8进制形式
printf "%x" 10,10的16进制形式,小a
printf "%X" 10,10的16进制形式,大A
printf函数不会加\n
其他的可以参考c语言的printf函数
read
从终端中读取输入
read -p 'input pwd:' pwd,-p后面是跟用户的提示,用户输入后,把输入的内容赋值给pwd
read -p 'pwd:' -t 5 pwd,5秒后,自动关闭输入框
read -p 'pwd:' -n 5 -s pwd,输入框的最大长度为5,当输入的字符到达最大长度时,退出并赋值给pwd
read -p 'pwd:' -s pwd,不回显输入的内容,一般用于需要保密的字段
read a b c,一次性设置3个变量,输入 1 2 3,将分别赋值给abc,如果输入的值的个数少于预定变量的个数,没有对应输入的变量值为空
cat g|while read line; do
echo ${#line} ${line}
done
对文件的每一行做处理
getopts
构造带选项的脚本
a: 和 c: 表示这个选项后面有参数
b表示这个选项后面不跟参数
echo $*
while getopts "a:bc:" opt
do
case $opt in
a)
echo "a" $OPTARG $OPTIND;;
b)
echo "b $OPTIND";;
c)
echo "c $OPTARG $OPTIND";;
?)
echo "error"
exit 1;;
esac
done
getopts.sh -a 1 -b -c 3,输出
-a 1 -b -c 3,所有命令行参数
a 1 3,1是-a选项的参数,3是下一个选项的处理位置
b 4,4是下一个处理位置
c 3 6,3是-b参数,6是下一个处理位置
下一个处理位置即$OPTIND表示的是下一个选项位于$*,即全部参数的位置
下一篇:Linux系统的基本操作