《高级Bash脚本编程指南》学习笔记(1)——基础:特殊字符

来源:互联网 发布:网络小胖恶搞 编辑:程序博客网 时间:2024/05/16 07:11

特殊字符:

字符字符解释详解&示例#注释;命令分隔符echo "File $filename exists."; cp $filename $filename.bak;;终止case选项.匹配字符正则表达式的一部分,匹配任意单个字符" "部分引用"STRING"将会阻止(解释)STRING中大部分特殊的字符' '全引用STRING'将会阻止STRING中所有特殊字符的解释,逗号操作符链接了一系列的算术操作. 虽然里边所有的内容都被运行了,但只有最后一项被返回
1 let "t2 = ((a = 9, 15 / 3))"  # Set "a = 9" and "t2 = 15 / 3"\转义符/文件名路径分隔符除法`命令替换`command`结构可以将命令的输出赋值到一个变量中去:空命令等价于"NOP" (no op, 一个什么也不干的命令). 也可以被认为与shell的内建命令true作用相同在与>重定向操作符结合使用时, 将会把一个文件清空, 但是并不会修改这个文件的权限. 如果之前这个文件并不存在, 那么就创建这个文件.与>>重定向操作符结合使用时, 将不会对预先存在的目标文件(: >> target_file)产生任何影响. 如果这个文件之前并不存在, 那么就创建它!取反操作符*通配符?测试操作符$变量替换${}参数替换$*,$@位置参数$?退出状态码变量$$进程ID变量()命令组在括号中的命令列表, 将会作为一个子shell来运行{}代码块扩展cat {file1,file2,file3} > combined_file
# 把file1, file2, file3连接在一起, 并且重定向到combined_file中cp file22.{txt,backup}
# 拷贝"file22.txt"到"file22.backup"中{} \;路径名一般都在find命令中使用. 这不是一个shell内建命令.[ ]条件测试[[ ]]测试(( ))整数扩展扩展并计算在(( ))中的整数表达式> &> >& >> < <>重定向scriptname >filename 重定向scriptname的输出到文件filename中. 如果filename存在的话, 那么将会被覆盖.
command &>filename 重定向command的stdout和stderr到filename中.
command >&2 重定向command的stdout到stderr中.
scriptname >>filename 把scriptname的输出追加到文件filename中. 如果filename不存在的话, 将会被创建.
[i]<>filename 打开文件filename用来读写, 并且分配文件描述符i给这个文件. 如果filename不存在, 这个文件将会被创建.<<用在here document中的重定向<<<用在here string中的重定向<, >ASCII comparison.\<, \>正则表达式中的单词边界|管道分析前边命令的输出, 并将输出作为后边命令的输入. 这是一种产生命令链的好方法
echo ls -l | sh      #  传递"echo ls -l"的输出到shell中
cat *.lst | sort | uniq # 合并和排序所有的".lst"文件, 然后删除所有重复的行
bash$ ls -l | ./uppercase.sh   #输送ls -l的输出到一个脚本中>|强制重定向强制的覆盖一个现存文件||或&后台运行命令一个命令后边跟一个& 表示在后台运行&&与~home目录~+当前工作目录~-先前的工作目录



脚本执行权限修改:

chmod 555 scriptname (允许任何人都具有可读和执行权限)

chmod +rx scriptname (允许任何人都具有可读和执行权限)

chmod u+rx scriptname (只给脚本的所有者可读和执行权限)


0 0