c语言大括号怎么用
大括号出现在脚本的各个角落,其用法也各有不同。同音多义字在汉语中最容易让人混淆,而大括号也正是bash语言中的“同音多义字”。下面小编就为大家介绍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.好脚本需要珍藏,以备不时之需。
拓展:c语言小括号的用法
1、单小括号 ()
①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。
②命令替换。等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令。有些shell不支持,如tcsh。
③用于初始化数组。如:array=(a b c d)
2、双小括号 (( ))
①整数扩展。这种扩展计算是整数型的计算,不支持浮点型。((exp))结构扩展并计算一个算术表达式的值,如果表达式的结果为0,那么返回的.退出状态码为1,或者 是"假",而一个非零值的表达式所返回的退出状态码将为0,或者是"true"。若是逻辑判断,表达式exp为真则为1,假则为0。
②只要括号中的运算符、表达式符合C语言运算规则,都可用在$((exp))中,甚至是三目运算符。作不同进位(如二进制、八进制、十六进制)运算时,输出结果全都自动转化成了十进制。如:echo $((16#5f)) 结果为95 (16进位转十进制)
③单纯用 (( )) 也可重定义变量值,比如 a=5; ((a++)) 可将 $a 重定义为6
④常用于算术运算比较,双括号中的变量可以不使用$符号前缀。括号内支持多个表达式用逗号分开。 只要括号中的表达式符合C语言运算规则,比如可以直接使用for((i=0;i<5;i++)), 如果不使用双括号, 则为for i in `seq 0 4`或者for i in {0..4}。再如可以直接使用if (($i<5)), 如果不使用双括号, 则为if [ $i -lt 5 ]。
下面的程序给多维数组初始化,注意初始化时花括号和小括号的区别
[cpp] view plain
#include
intmain()
{
inta[2][2]={(1,2),(3,4),};//如果把小括号换成花括号,结果就不一样了,小括号(1,2)返回2(3,4)返回4,另外两个元素默认是0
inti,j;
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
printf("%d",a[i][j]);
printf(" ");
}
int*p=a[0];
printf("%d ",p[0]);
return0;
}
/*
运行结果:
24
00
2
*/
【c语言大括号怎么用】相关文章:
c语言大括号的用法04-02
c语言中fprintf怎么用10-06
c语言中%s怎么用10-04
c语言中逻辑或怎么用04-10
c语言问号冒号怎么用09-27
怎么学习C语言09-04
怎么自学C语言09-11
c语言中怎么画图10-07
怎么学习C语言编程09-23