当前位置: 技术问答>linux和unix
【求助】Shell中变量赋值更新
来源: 互联网 发布时间:2017-03-08
本文导语: 代码如下: tmp_file=test idx=0 #idx第一次赋值 cat $tmp_file | while read line do idx=$[$idx + 1] echo "idx:"$idx #更新,并赋值正常 done echo "exit idx:"$idx #idx竟然还是为0 求助,上面代码最后一行,idx的取值竟然还...
代码如下:
tmp_file=test
idx=0 #idx第一次赋值
cat $tmp_file | while read line
do
idx=$[$idx + 1]
echo "idx:"$idx #更新,并赋值正常
done
echo "exit idx:"$idx #idx竟然还是为0
求助,上面代码最后一行,idx的取值竟然还是0.
它在while循环中已经被成功修改了啊?
tmp_file=test
idx=0 #idx第一次赋值
cat $tmp_file | while read line
do
idx=$[$idx + 1]
echo "idx:"$idx #更新,并赋值正常
done
echo "exit idx:"$idx #idx竟然还是为0
求助,上面代码最后一行,idx的取值竟然还是0.
它在while循环中已经被成功修改了啊?
|
exec是重定向用的,和linux C里的exec是不一样的。
exec 4>文件名 就是相当于linux c的int fd = open(文件, "w"); dup2(fd, 4); 。
这里read -u4就是从描述符4读数据的意思。
还有exec 4&-就是关闭描述符4, 是这么写吧。
exec 4&1, 就是dup2(1, 4); 写4等于写标准输出。
注意,>往右是写,
exec 4>文件名 就是相当于linux c的int fd = open(文件, "w"); dup2(fd, 4); 。
这里read -u4就是从描述符4读数据的意思。
还有exec 4&-就是关闭描述符4, 是这么写吧。
exec 4&1, 就是dup2(1, 4); 写4等于写标准输出。
注意,>往右是写,