QQ个性网:专注于分享免费的QQ个性内容

关于我们| 网站公告| 广告服务| 联系我们| 网站地图

搜索
编程 JavaScript Java C++ Python SQL C Io ML COBOL Racket APL OCaml ABC Sed Bash Visual Basic Modula-2 Logo Delphi IDL Groovy Julia REXX Chapel X10 Forth Eiffel C# Go Rust PHP Swift Kotlin R Dart Perl Ruby TypeScript MATLAB Shell Lua Scala Objective-C F# Haskell Elixir Lisp Prolog Ada Fortran Erlang Scheme Smalltalk ABAP D ActionScript Tcl AWK IDL J PostScript IDL PL/SQL PowerShell

linux基础,bash6,脚本控制

日期:2025/04/08 04:46来源:未知 人气:53

导读:set控制bash运行set -b,- 号一般为打开功能,+ 号为关闭功能,对设置位置之后的命令有效-a,设置之后,后面在设置或者变更的变量自动export到子进程,默认bash的变量不能被子进程共享,除非用 export 明确导出-b,当后台作业完成时,主动报告,输出到标准输出,set +b,关闭后台作业完成报告,下次执行命令时提示任务完成-e,在-e设置之后所有执行的命令,......

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表示这个选项后面不跟参数

! /bin/bash

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表示的是下一个选项位于$*,即全部参数的位置

Bash排行

关于我们|网站公告|广告服务|联系我们| 网站地图

Copyright © 2002-2023 某某QQ个性网 版权所有 | 备案号:粤ICP备xxxxxxxx号

声明: 本站非腾讯QQ官方网站 所有软件和文章来自互联网 如有异议 请与本站联系 本站为非赢利性网站 不接受任何赞助和广告