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

Chinaunix

標(biāo)題: for循環(huán)和diff的疑問(wèn) [打印本頁(yè)]

作者: 相當(dāng)宏偉    時(shí)間: 2011-03-14 23:22
標(biāo)題: for循環(huán)和diff的疑問(wèn)
for i in `cd /home/code ; echo *.c`
do
    diff -c /home/code/$i $i |more
done

同樣是$i , 為什么什么是比較/home/code里面的*.c 和當(dāng)前目錄里的*.c ?
作者: 昭襄王    時(shí)間: 2011-03-15 09:00
不為什么啊,如果不是這樣才有為什么
作者: jason680    時(shí)間: 2011-03-15 09:03
for i in `cd /home/code ; echo *.c`
do
    diff -c /home/code/$i $i |more
done

同樣是$i , 為什 ...
相當(dāng)宏偉 發(fā)表于 2011-03-14 23:22


加入set -x就可看到答案
作者: 相當(dāng)宏偉    時(shí)間: 2011-03-15 14:31
為什么第2個(gè)i是本地目錄的*.c呢?
因?yàn)閒or里面的echo嗎?
作者: ontherd    時(shí)間: 2011-03-15 14:51
直接循環(huán)目錄中文件*.c不就行了嗎
作者: chinaboywg    時(shí)間: 2011-03-15 15:08
for i in `find /home/code -name -type -f *.c `
do
    diff -c $i  ./*.c |more
done
作者: wgyzhechao    時(shí)間: 2011-03-15 15:24
for i in `cd /home/code ; echo *.c`
do
    diff -c /home/code/$i $i |more
done

同樣是$i , 為什 ...
相當(dāng)宏偉 發(fā)表于 2011-03-14 23:22




    cd /home/code ; echo *.c  你執(zhí)行看看就知道為啥了。
作者: 相當(dāng)宏偉    時(shí)間: 2011-03-15 17:04
回復(fù) 7# wgyzhechao


    執(zhí)行效果就是進(jìn)入了/home/code 然后echo了里面的*.c

[root@M code]# pwd
/root/code
[root@M code]# ls
b.c
[root@M code]# cd /home/code ; echo *.c
a.c
[root@M code]# pwd
/home/code
[root@M code]# ls
a.c
作者: 南極雨    時(shí)間: 2011-03-15 17:05
分號(hào)
作者: 相當(dāng)宏偉    時(shí)間: 2011-03-15 17:19
回復(fù) 9# 南極雨


    難道不是執(zhí)行完第一個(gè),之后就執(zhí)行第二個(gè)嗎?請(qǐng)兄弟詳解
作者: xindi10631    時(shí)間: 2011-03-15 17:26
第二個(gè)i你沒(méi)有設(shè)置目錄啊,默認(rèn)在當(dāng)前目錄!
作者: 相當(dāng)宏偉    時(shí)間: 2011-03-15 17:28
回復(fù) 11# xindi10631

可是在for循環(huán)里啊
作者: 南極雨    時(shí)間: 2011-03-15 17:30
本帖最后由 南極雨 于 2011-03-15 17:33 編輯

回復(fù) 10# 相當(dāng)宏偉


我實(shí)在沒(méi)明白*.c怎么就轉(zhuǎn)換成a.c了?
這樣吧,你這樣試試,有的可能是變量改掉了
  cd /home/code ; echo $PWD/*.c
作者: xindi10631    時(shí)間: 2011-03-15 17:31
回復(fù) 12# 相當(dāng)宏偉


    第二個(gè)i的取值是你shell文件存放的目錄的目錄!
作者: 南極雨    時(shí)間: 2011-03-15 17:41
for i in `cd /home/code ; echo *.c`
do
    diff -c /home/code/$i $i |more
done

同樣是$i , 為什 ...
相當(dāng)宏偉 發(fā)表于 2011-03-14 23:22



    你這個(gè)腳本寫(xiě)的很有問(wèn)題....
沒(méi)法說(shuō),單獨(dú)成行的有,

整個(gè)腳本合起來(lái),就沒(méi)有必要用for 循環(huán)了
作者: xushaohuaa    時(shí)間: 2011-03-15 18:23
echo的結(jié)果,使得i只有文件名,沒(méi)有路徑
作者: 相當(dāng)宏偉    時(shí)間: 2011-03-15 18:31
回復(fù) 13# 南極雨


    看8樓,在/home/code 里面只有一個(gè)a.c文件,所以 echo *.c 就echo出了a.c
作者: 相當(dāng)宏偉    時(shí)間: 2011-03-15 18:31
回復(fù) 14# xindi10631


    那為什么就取值到當(dāng)前目錄了?for里面已經(jīng)切換目錄了
作者: 相當(dāng)宏偉    時(shí)間: 2011-03-15 18:34
回復(fù) 15# 南極雨


    這個(gè)不是我寫(xiě)的,是《shell 腳本學(xué)習(xí)指南》里面170頁(yè)的實(shí)例。
作者: 相當(dāng)宏偉    時(shí)間: 2011-03-15 22:57
up
作者: yinyuemi    時(shí)間: 2011-03-16 05:01
回復(fù)  xindi10631


    那為什么就取值到當(dāng)前目錄了?for里面已經(jīng)切換目錄了
相當(dāng)宏偉 發(fā)表于 2011-03-15 18:31


整個(gè)loop的當(dāng)前路徑是/home/code么?:wink:
  1. for i in `cd /home/code; echo *.c`
  2. do
  3. echo $PWD
  4. done
復(fù)制代碼

作者: 相當(dāng)宏偉    時(shí)間: 2011-03-16 10:53
回復(fù) 21# yinyuemi


    當(dāng)前路徑是 /root/code
是在/root/code下面執(zhí)行的shell
作者: 南極雨    時(shí)間: 2011-03-16 10:53
回復(fù) 17# 相當(dāng)宏偉


你的echo是不是alias過(guò)了?
你在自己的機(jī)器上也出現(xiàn)a.c 嗎?
至少應(yīng)該有個(gè)-e 選項(xiàng)吧
作者: 相當(dāng)宏偉    時(shí)間: 2011-03-16 10:58
回復(fù)  相當(dāng)宏偉


你的echo是不是alias過(guò)了?
你在自己的機(jī)器上也出現(xiàn)a.c 嗎?
至少應(yīng)該有個(gè)-e 選項(xiàng)吧
南極雨 發(fā)表于 2011-03-16 10:53



    echo沒(méi)alias過(guò),純?cè)娴。出現(xiàn)那個(gè)a.c是因?yàn)閏d進(jìn)的目錄里面有a.c啊?這有什么不對(duì)嗎?
作者: 南極雨    時(shí)間: 2011-03-16 12:48
回復(fù) 24# 相當(dāng)宏偉

呵呵.沒(méi)問(wèn)題,是我搞錯(cuò)了!
作者: 相當(dāng)宏偉    時(shí)間: 2011-03-16 13:25
回復(fù) 25# 南極雨


    大哥別不對(duì)就完了啊,給兄弟解釋解釋為嘛呢?
作者: tonyfu    時(shí)間: 2011-03-16 13:34
for 那個(gè)沒(méi)有路徑的,只有文件名
作者: 南極雨    時(shí)間: 2011-03-16 13:55
回復(fù) 26# 相當(dāng)宏偉


你的腳本并沒(méi)有進(jìn)入到/home/code目錄,
這樣運(yùn)行也是一樣的:
for i in `echo *.c`
do
diff -c /home /code $i $i ....
done

當(dāng)然,你的當(dāng)前目錄和/home/code目錄下面都有這個(gè) .c文件
作者: 相當(dāng)宏偉    時(shí)間: 2011-03-16 15:24
回復(fù) 28# 南極雨


    哦,明白了for循環(huán)部分不會(huì)改變腳本的執(zhí)行路徑,也就是說(shuō),是從/home/code 里面取的文件名。然后和當(dāng)前目錄做的比較
作者: 南極雨    時(shí)間: 2011-03-16 16:39
回復(fù) 29# 相當(dāng)宏偉


對(duì)
所以,你的腳本完全是畫(huà)蛇添足,牛刀殺雞
i=`echo *.c`
diff -c /home/code/$i $i
即可




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2