免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: thinshootout
打印 上一主题 下一主题

关于shell的IFS [复制链接]

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
41 [报告]
发表于 2009-03-14 17:20 |只看该作者
原帖由 wendaozhe 于 2009-3-14 17:06 发表
因为在subshell中并没有产生新的进程,如果要我强行理解的话,那就是:var=value command这种形式只把变量给子进程,自己都不用!


命令comand是可以使用var=value的,而且这也是var=value的目的,我们常用的LC_ALL=C command,就是让command在一个LC_ALL=C的环境中执行,而不是使用当前locale.

论坛徽章:
0
42 [报告]
发表于 2009-03-14 17:23 |只看该作者

回复 #41 blackold 的帖子

如果是这样的话,那我就理解了!
不是我原先的理解有问题,只是对var=value commond这种“特殊”的形式不了解而已!

[ 本帖最后由 wendaozhe 于 2009-3-14 17:24 编辑 ]

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
43 [报告]
发表于 2009-03-14 17:34 |只看该作者

回复 #42 wendaozhe 的帖子

如果还不理解,就理解为临时变量吧,或者"局部变量"。

论坛徽章:
0
44 [报告]
发表于 2009-03-14 18:12 |只看该作者

回复 #41 blackold 的帖子

现在有点明白过来了,谢谢黑哥。

论坛徽章:
0
45 [报告]
发表于 2009-03-14 19:28 |只看该作者
root@devserver02 # ./test

B
root@devserver02 # cat test
#! /bin/sh
A=B  echo  $A
echo  $A

root@devserver02 #


为什么我的是输出的???????????????????
我用的是
root@devserver02 # cat /etc/release
                       Solaris 10 6/06 s10s_u2wos_09a SPARC
           Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
                        Use is subject to license terms.
                             Assembled 09 June 2006

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
46 [报告]
发表于 2009-03-14 19:37 |只看该作者

回复 #45 xin2v 的帖子

你用的不是bash吧。

论坛徽章:
0
47 [报告]
发表于 2009-03-14 19:39 |只看该作者
奇怪奥  换了linux的版本  就和楼主说的一样啦 嘿嘿  怪啊  哈哈
[root@localhost ~]# a=b echo $a

[root@localhost ~]# echo $a

[root@localhost ~]#

论坛徽章:
0
48 [报告]
发表于 2009-03-14 19:51 |只看该作者
原帖由 blackold 于 2009-3-14 19:37 发表
你用的不是bash吧。

我用的是标准shell嘿嘿
刚明白  就是solaris自己带的shell  谢谢 黑哥

论坛徽章:
0
49 [报告]
发表于 2009-03-14 20:12 |只看该作者
原帖由 blackold 于 2009-3-14 12:08 发表
A=B echo $A中的$A展开在A=B赋值之前

A=B只影响当前命令的执行环境。所以第二个命令echo $A……


我的理解,不要问为什么,这是规则如此而已

论坛徽章:
0
50 [报告]
发表于 2009-03-14 23:57 |只看该作者
原帖由 lululau 于 2009-3-14 13:09 发表
都说了"VAR=value comman"这样的形式是将VAR作为一个环境变量传给子进程
ABS上面说的



有空我来看下!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP