c语言大括号的用法
{}第一种用法,符号扩展
#!/bin/bash
echo "{hello,world}"
#######################
# 输出为:"hello" "world"
#######################
echo {a..c} #只能是..
######################
# 输出为: a b c
######################
{}第二种用法,代码块表示法,与c语言中的作用相似,c语言中,有了{}的代码块,其变量作用域就改变了;bash中,却不存在这个功能,在{}中的内容,仍然与外部变量名相通。此外,{}代码块表示法还有一个作用,就是将代码块内所有的输入输出信息重定向。
#脚本1
#!/bin/bash
a=123
{ a=321; } #大括号两边内部变量与大括号之间一定要用空格隔开
echo "a = $a "输出a=321
#脚本2
#!/bin/bash
File="`pwd`/fas" #fas是由自己在当前目录创建的文件
{
read line1
read line2
} < $File #此处进行重定向,将fas文件的内容读入到line1和line2
echo "First line in $File is: "
echo "$line1"
echo
echo "second line in $File is :"
echo "$line2"
exit 0
与大括号{}有些相似的符号是圆括号()。但圆括号()内的代码将启动一个子shell来运行,{}不会这样。
#!/bin/bash
a=123
( a=321; )
echo "a = $a" #a=123
附注:
1.如果想让你的脚本像ls等命令一样通用,那么需要将命令复制到/usr/local/bin,并使用chmod 777 filename修改其执行权限。
2./bin目录、/sbin目录、/usr/local/bin/目录、/usr/local/sbin目录、/usr/bin目录、/usr/sbin目录的区别与联系
最需要注意的一点,usr不是user的意思,而是unix system resource的简称,也就是unix系统资源。在/usr这个目录下,放了一些系统
相同之处:都是一些命令;
不同之处:
/bin:基本命令
/sbin:基本系统命令
/usr/bin:与/bin类似,包括此后安装软件的命令
/usr/sbin:与/sbin类似,包括此后增加的系统管理的一些命令
/usr/local/bin:与/bin,/usr/bin类似,但是局部(local)范围,linux是多用户系统,有分级的权限,有些软件内容必须添加在/usr/local/bin,而不是/usr
/usr/local/sbin:同上
3.好脚本需要珍藏,以备不时之需。