亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
123下一頁
最近訪問板塊 發(fā)新帖
查看: 6009 | 回復(fù): 20
打印 上一主題 下一主題

[文本處理] 關(guān)于()子shell的變量繼承問題 [復(fù)制鏈接]

論壇徽章:
1
15-16賽季CBA聯(lián)賽之福建
日期:2016-01-19 11:22:51
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2014-12-06 21:17 |只看該作者 |倒序瀏覽

[root@localhost ~]# a=abc
[root@localhost ~]# echo $a
abc
未export,但
[root@localhost ~]# (echo $a)
abc

何解?(command)表示該command在子shell中運行,
a未export為本地變量,子shell應(yīng)該是繼承不到的,但現(xiàn)在變量a卻繼承了當前shell的值。
這如何理解?

論壇徽章:
0
2 [報告]
發(fā)表于 2014-12-06 22:27 |只看該作者
你需要去了解 subshell 和 subproccess的區(qū)別
subshell 可以繼承parent shell的 var  ,你這里的a 就相當于全局變量,,

論壇徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亞冠之浦和紅鉆
日期:2015-06-23 19:10:532015亞冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16賽季CBA聯(lián)賽之山東
日期:2016-01-31 18:25:0515-16賽季CBA聯(lián)賽之四川
日期:2016-02-16 16:08:30程序設(shè)計版塊每日發(fā)帖之星
日期:2016-06-29 06:20:002017金雞報曉
日期:2017-01-10 15:19:5615-16賽季CBA聯(lián)賽之佛山
日期:2017-02-27 20:41:19
3 [報告]
發(fā)表于 2014-12-07 08:23 |只看該作者
fork()  creates  a new process by duplicating the calling process.  The
       new process, referred to as the child, is an  exact  duplicate  of  the
       calling  process,  referred  to as the parent, except for the following
       points:

理解下exact  duplicate

論壇徽章:
22
處女座
日期:2014-10-11 13:33:292015亞冠之塔什干火車頭
日期:2015-07-20 19:59:042015亞冠之塔什干火車頭
日期:2015-07-26 10:59:31程序設(shè)計版塊每日發(fā)帖之星
日期:2015-08-05 06:20:00每日論壇發(fā)貼之星
日期:2015-08-05 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-08-07 06:20:00每日論壇發(fā)貼之星
日期:2015-08-07 06:20:002015亞冠之阿爾納斯爾
日期:2015-10-01 15:23:28白銀圣斗士
日期:2015-12-07 17:17:06操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-12-27 06:20:002015亞冠之廣州富力
日期:2015-07-08 15:48:31程序設(shè)計版塊每日發(fā)帖之星
日期:2015-06-11 22:20:00
4 [報告]
發(fā)表于 2014-12-07 11:43 |只看該作者
回復(fù) 2# pengmingguo
我也不了解subshell 和subprocess的區(qū)別,朋友你有學習資料沒,給個鏈接   


   

論壇徽章:
0
5 [報告]
發(fā)表于 2014-12-07 12:21 |只看該作者
回復(fù) 4# 聆雨淋夜

如樓上waker大神所說。  用() 產(chǎn)生subshell時,系統(tǒng)fork出一個進程,copy了父進程的所有東西。 而在command-line敲入 xxcommand運行某個命令是, 系統(tǒng)fork出一個子進程后還調(diào)用了execve函數(shù)來執(zhí)行你敲入的命令,execve把父進程的數(shù)據(jù)棧,堆棧都覆蓋了。 未看過bash源碼,純屬YY, 請大神們指正。


   

論壇徽章:
22
處女座
日期:2014-10-11 13:33:292015亞冠之塔什干火車頭
日期:2015-07-20 19:59:042015亞冠之塔什干火車頭
日期:2015-07-26 10:59:31程序設(shè)計版塊每日發(fā)帖之星
日期:2015-08-05 06:20:00每日論壇發(fā)貼之星
日期:2015-08-05 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-08-07 06:20:00每日論壇發(fā)貼之星
日期:2015-08-07 06:20:002015亞冠之阿爾納斯爾
日期:2015-10-01 15:23:28白銀圣斗士
日期:2015-12-07 17:17:06操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-12-27 06:20:002015亞冠之廣州富力
日期:2015-07-08 15:48:31程序設(shè)計版塊每日發(fā)帖之星
日期:2015-06-11 22:20:00
6 [報告]
發(fā)表于 2014-12-07 17:45 |只看該作者
回復(fù) 5# pengmingguo
多謝


   

論壇徽章:
0
7 [報告]
發(fā)表于 2014-12-07 21:09 |只看該作者
本帖最后由 pengmingguo 于 2014-12-07 21:11 編輯

回復(fù) 5# pengmingguo

而在command-line敲入 xxcommand運行某個命令: 指external command
execve把父進程的數(shù)據(jù)棧    寫錯了  是execve把fork()出來的那個子進程的數(shù)據(jù)棧


   

論壇徽章:
1
15-16賽季CBA聯(lián)賽之福建
日期:2016-01-19 11:22:51
8 [報告]
發(fā)表于 2014-12-08 14:24 |只看該作者
本帖最后由 dt1826 于 2014-12-08 14:34 編輯

回復(fù) 3# waker

多謝你的回復(fù),按照你給的手冊的描述,是進行exact  duplicate完全一致的復(fù)制,這樣的話子shell也能獲取a變量的值;
但還是疑惑,因為另外一些資料都明確描述fork的父子之間變量傳遞限制,如下面一例,
When a process forks a child process, the parent does not pass the value
of a variable to the child
. You can make the value of a variable available to child
processes (global) by using the export builtin under bash
許多資料都有這樣的說法,但這和你引述的fork()的解說好像有矛盾?
而如果在腳本里應(yīng)用a,a不能獲得值,腳本是fork執(zhí)行的,感覺比較混亂。

希望多多賜教,在寫腳本的時候經(jīng)常困擾,不知道該如何理解使用。

   

論壇徽章:
1
15-16賽季CBA聯(lián)賽之福建
日期:2016-01-19 11:22:51
9 [報告]
發(fā)表于 2014-12-08 14:29 |只看該作者
回復(fù) 5# pengmingguo

多謝回復(fù),希望對fork熟悉的人來回答驗證下。
   

論壇徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亞冠之浦和紅鉆
日期:2015-06-23 19:10:532015亞冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16賽季CBA聯(lián)賽之山東
日期:2016-01-31 18:25:0515-16賽季CBA聯(lián)賽之四川
日期:2016-02-16 16:08:30程序設(shè)計版塊每日發(fā)帖之星
日期:2016-06-29 06:20:002017金雞報曉
日期:2017-01-10 15:19:5615-16賽季CBA聯(lián)賽之佛山
日期:2017-02-27 20:41:19
10 [報告]
發(fā)表于 2014-12-08 15:15 |只看該作者
回復(fù) 8# dt1826

那資料描述錯了唄,進程怎么處理變量是自己的事,進程要影響別的進程就進程間通信,父子進程只是個名字讓人好理解,沒有三綱五常
   
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP