第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

為什么while循環(huán)后我的Bash計(jì)數(shù)器會(huì)重置

為什么while循環(huán)后我的Bash計(jì)數(shù)器會(huì)重置

斯蒂芬大帝 2020-02-01 16:55:54
我有一個(gè)Bash腳本,我想在其中計(jì)算在循環(huán)文件時(shí)完成了多少操作。計(jì)數(shù)似乎在循環(huán)內(nèi)起作用,但在此之后,變量似乎已重置。nKeys=0cat afile | while read -r linedo  #...do stuff  let nKeys=nKeys+1  # this will print 1,2,..., etc as expected  echo Done entry $nKeysdone# PROBLEM: this always prints "... 0 keys"echo Finished writing $destFile, $nKeys keys上面的輸出僅是以下幾行的內(nèi)容:完成輸入1完成輸入2完成寫/ blah,0鍵我想要的輸出是:完成輸入1完成輸入2完成寫/ blah,2鍵我不太確定為什么循環(huán)后nKeys為0 :(我認(rèn)為這是基本的東西,但是盡管我看了http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-7.html,但還是能認(rèn)出它,但該死的和其他資源。手指交叉著別人可以看著它,然后走開,“嗯!你必須……”!
查看完整描述

3 回答

?
MMTTMM

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊

在剛剛發(fā)布的Bash 4.2中,您可以執(zhí)行以下操作以防止創(chuàng)建子外殼:


shopt -s lastpipe

另外,您可能會(huì)在Ignacio提供的鏈接中看到,您對的無用cat。


while read -r line

do

    ...

done < afile


查看完整回答
反對 回復(fù) 2020-02-01
?
慕的地10843

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個(gè)贊

如已接受的答案中所述,這是因?yàn)楣艿喇a(chǎn)生了單獨(dú)的子流程。為避免這種情況,command grouping一直是我的最佳選擇。也就是說,在子外殼中的管道之后進(jìn)行所有操作。


nKeys=0

cat afile | 

{

  while read -r line

  do

    #...do stuff

    let nKeys=nKeys+1

    # this will print 1,2,..., etc as expected

    echo Done entry $nKeys

  done

  # PROBLEM: this always prints "... 0 keys"

  echo Finished writing $destFile, $nKeys keys

}

現(xiàn)在它將報(bào)告$nKeys“正確” 的值(即您希望的值)。


查看完整回答
反對 回復(fù) 2020-02-01
  • 3 回答
  • 0 關(guān)注
  • 811 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)