作者 主題: 用什麼程式可以實現自動建立日期文件夾?  (閱讀 5434 次)

0 會員 與 1 訪客 正在閱讀本文。

van416

  • 懷疑的國中生
  • **
  • 文章數: 48
    • 檢視個人資料
大家好:
  最近想用用程式自動建一個日期文件夾,文件夾取各為: 04122010  (這裡為變數,隨著時間的改變而改變)
     其中 : 04為月份 12為日期 2010為年限

想到用DATE命令,但不知道該怎麼實現?
用 date >>1.dat
從裡面顯示出來的為: Mon Apr 12 14:32:26 EDT 2010

我該怎麼設變量才能實現用程式建立:04($Mon)12($Date)2010($Year)  ??? :o

Thanks!

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
大家好:
  最近想用用程式自動建一個日期文件夾,文件夾取各為: 04122010  (這裡為變數,隨著時間的改變而改變)
     其中 : 04為月份 12為日期 2010為年限

想到用DATE命令,但不知道該怎麼實現?
用 date >>1.dat
從裡面顯示出來的為: Mon Apr 12 14:32:26 EDT 2010
我該怎麼設變量才能實現用程式建立:04($Mon)12($Date)2010($Year)  ??? :o
Thanks!

代碼: [選擇]
$ date +%m%d20%y
04122010

其實 man date 應該就有完整說明了

gwstudy

  • 活潑的大學生
  • ***
  • 文章數: 205
    • 檢視個人資料
大家好:
  最近想用用程式自動建一個日期文件夾,文件夾取各為: 04122010  (這裡為變數,隨著時間的改變而改變)
     其中 : 04為月份 12為日期 2010為年限

想到用DATE命令,但不知道該怎麼實現?
用 date >>1.dat
從裡面顯示出來的為: Mon Apr 12 14:32:26 EDT 2010

我該怎麼設變量才能實現用程式建立:04($Mon)12($Date)2010($Year)  ??? :o

Thanks!


請 man date, 裡頭有很多輸出格式

van416

  • 懷疑的國中生
  • **
  • 文章數: 48
    • 檢視個人資料
Thanks for  Yamaka & gwstudy!
剛才用date '+%m%d20%y'可以實現顯示我所需要的,但我遇到另一個問題:

我用如下程式建立文件,但沒有生成04122010文件夾:
#! /bin/bash

date '+%m%d20%y' >> date.log
Family="'head -n 1 date.log'"
echo "Date is ${Family}
mkdir "${Family}"

以上,但是生成的是 head -n 1 date.log 文件我不知道為什麼?


已解決:以上的命令字符用錯,應該為:Family=`head -n 1 date.log` ::)
 
 
« 上次編輯: 2010-04-12 16:51 由 van416 »

kenduest

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3675
    • 檢視個人資料
    • http://kenduest.sayya.org
Thanks for  Yamaka & gwstudy!
剛才用date '+%m%d20%y'可以實現顯示我所需要的,但我遇到另一個問題:

我用如下程式建立文件,但沒有生成04122010文件夾:
#! /bin/bash

date '+%m%d20%y' >> date.log
Family="'head -n 1 date.log'"
echo "Date is ${Family}
mkdir "${Family}"

以上,但是生成的是 head -n 1 date.log 文件我不知道為什麼?


已解決:以上的命令字符用錯,應該為:Family=`head -n 1 date.log` ::)
 
 

為何要這樣用呢?直接這樣不就好?

date=$(date +%m%d20%y)
mkdir $date
I am kenduest - 小州

my website: http://kenduest.sayya.org/

van416

  • 懷疑的國中生
  • **
  • 文章數: 48
    • 檢視個人資料
謝謝kenduest前輩,已經OK :-[


« 上次編輯: 2010-04-12 17:15 由 van416 »

van416

  • 懷疑的國中生
  • **
  • 文章數: 48
    • 檢視個人資料

date=$(date +%m%d20%y)
mkdir $date
做成文件夾之後
cd $date不成功
用什麼可以cd到date目錄呢

kenduest

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3675
    • 檢視個人資料
    • http://kenduest.sayya.org

date=$(date +%m%d20%y)
mkdir $date
做成文件夾之後
cd $date不成功
用什麼可以cd到date目錄呢

怎樣不成功?你的測試內容?
I am kenduest - 小州

my website: http://kenduest.sayya.org/

van416

  • 懷疑的國中生
  • **
  • 文章數: 48
    • 檢視個人資料
我在$date下建立一個文件a
可以執行 cp /root/$data/a /root  同時a文件也COPY到了ROOT目錄下
但cd $date就是不能進入到此目錄?

e.g:
$date為04262010
cd /root/$date之後
目錄依舊在root下
« 上次編輯: 2010-04-26 16:47 由 van416 »

kenduest

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3675
    • 檢視個人資料
    • http://kenduest.sayya.org
 
啊?沒問題啊。

代碼: [選擇]
SayyaBBS:kendlee@~> name="/etc/sysconfig"
SayyaBBS:kendlee@~>
SayyaBBS:kendlee@~> pwd
/home2/users/kendlee
SayyaBBS:kendlee@~>
SayyaBBS:kendlee@~> cd $name
SayyaBBS:kendlee@/etc/sysconfig>
SayyaBBS:kendlee@/etc/sysconfig> pwd
/etc/sysconfig
SayyaBBS:kendlee@/etc/sysconfig>

但是我要提醒,你無法用 shell script 來控制目前所在 shell 的工作目錄。

代碼: [選擇]
SayyaBBS:kendlee@~/tmp> ls -l
Total 4
-rwxrwxr-x 1 kendlee kendlee 32 2010-04-26 17:01 test.sh*
SayyaBBS:kendlee@~/tmp>
SayyaBBS:kendlee@~/tmp> cat -n test.sh
     1  #!/bin/bash
     2
     3  cd /etc/sysconfig
     4
SayyaBBS:kendlee@~/tmp>
SayyaBBS:kendlee@~/tmp> pwd
/home2/users/kendlee/tmp
SayyaBBS:kendlee@~/tmp>
SayyaBBS:kendlee@~/tmp> ./test.sh
SayyaBBS:kendlee@~/tmp>
SayyaBBS:kendlee@~/tmp>
SayyaBBS:kendlee@~/tmp> pwd
/home2/users/kendlee/tmp

因為 shell script 是另外一個獨立的 process,你無法用該 shell script 控制當前所在 shell 的工作目錄。
I am kenduest - 小州

my website: http://kenduest.sayya.org/

van416

  • 懷疑的國中生
  • **
  • 文章數: 48
    • 檢視個人資料
原來是這樣的!!!~~
那如果這樣的想用shell script該如何解決啊?

問題匯總如下:
/root/my 內容為: file&linux    注:file字符為變動的字符   ---變量1
/root/file內容也為變動的(一直在增加):           -----變量2
abcd
1234
789456
......
/home/test為目地檔案



我建立了一個shell script add.sh  
#!/bin/bash

1 family=$(cut -c 1-4 /root/my)
2 echo $family
3 file
4 tail -n 1 /root/$family >> /home/test


運行add.sh後,出現 : tail : error reading '/root/' : Is a directory

當我將$family改為file之後 tail -n 1 /root/file>> /home/test.txt  再次運行OK
但這不是我想要的,我想讓file成為一個變量。

我想這錯誤應該也是你所說的

shell script 是另外一個獨立的 process,你無法用該 shell script 控制當前所在 shell 的工作目錄。

請問Kenduest大哥,上述shell script該如何才能將變量family文件的內容寫入到test文件中

« 上次編輯: 2010-04-26 18:24 由 van416 »

kenduest

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3675
    • 檢視個人資料
    • http://kenduest.sayya.org

那個檔案有多行,你只能夠取一行內的資訊來用而已,你這樣用 cut 當然亂七八糟.. 要不然你就是寫成迴圈。

建議請先研究清楚 for 與 while 語法再說。

代碼: [選擇]
for name in a b c d e
do
  echo "$name"
done

代碼: [選擇]
while read line
do
    echo $line
done < /etc/passwd
I am kenduest - 小州

my website: http://kenduest.sayya.org/