作者 主題: shell 問題  (閱讀 6586 次)

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

egg41230

  • 可愛的小學生
  • *
  • 文章數: 5
    • 檢視個人資料
shell 問題
« 於: 2018-09-17 14:33 »

#!/bin/bash

#創建資料夾
#擷取domain字串
cut_domain_string(){
domain_string=$(echo  "$2" | awk  -F ';'  '{for (i=1; i <= NF; i++) {printf $i" "}}' )
echo $domain_string
}
#擷取目錄字串
cut_dir_string(){
cut_dirtime_string=$(echo   "$1" | awk  '{print $1}' )
echo $cut_dirtime_string
}

backup(){
 bp_dir='/root/conf/backup'
 mkdir -p  "$bp_dir"/"$cut_timedir"/"$cut_domain_dir"
}
main(){
cut_timedir=$(cut_dir_string $1)
cut_domain_dir=$(cut_domain_string $2)
backup $cut_timedir $cut_domain_dir
}

main $1 $2

請問一下我寫了一隻shell 程式碼如上,我把$2的值傳給cut_domain_string,卻無法傳遞進去,請問我為啥無法傳遞進去?
在猜是否為awk 的問題?
« 上次編輯: 2018-09-17 15:27 由 egg41230 »

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17387
    • 檢視個人資料
    • http://www.study-area.org
Re: shell 問題
« 回覆 #1 於: 2018-09-17 16:52 »
cut_domain_string 裏面要寫 $1

egg41230

  • 可愛的小學生
  • *
  • 文章數: 5
    • 檢視個人資料
Re: shell 問題
« 回覆 #2 於: 2018-09-17 17:20 »
感恩大大~已經OK了

egg41230

  • 可愛的小學生
  • *
  • 文章數: 5
    • 檢視個人資料
Re: shell 問題
« 回覆 #3 於: 2018-09-18 17:21 »

#!/bin/bash

#創建資料夾
#擷取domain字串
cut_domain_string(){
domain_string=$(echo  "$2" | awk  -F ';'  '{for (i=1; i <= NF; i++) {printf $i" "}}' )
echo $domain_string
}
#擷取目錄字串
cut_dir_string(){
cut_dirtime_string=$(echo   "$1" | awk  '{print $1}' )
echo $cut_dirtime_string
}

backup(){
 bp_dir='/root/conf/backup'
 mkdir -p  "$bp_dir"/"$cut_timedir"/"$cut_domain_dir"
}
main(){
cut_timedir=$(cut_dir_string $1)
cut_domain_dir=$(cut_domain_string $2)
backup $cut_timedir $cut_domain_dir
}

main $1 $2

請問一下我寫了一隻shell 程式碼如上,我把$2的值傳給cut_domain_string,卻無法傳遞進去,請問我為啥無法傳遞進去?
在猜是否為awk 的問題?
各位大大~小弟不才~這邊想請教一個問題~再shell 裏面的function 變數不是都是全域的嗎,那我想請問一下為啥我在上面
的寫法,再main() function  裡面 echo $bp_dir 為啥會是空字串?

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17387
    • 檢視個人資料
    • http://www.study-area.org
Re: shell 問題
« 回覆 #4 於: 2018-09-18 17:23 »
要執行完backup再echo

egg41230

  • 可愛的小學生
  • *
  • 文章數: 5
    • 檢視個人資料
Re: shell 問題
« 回覆 #5 於: 2018-09-18 17:30 »
是我這樣寫法,所以涵式的變數不是global的嗎

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17387
    • 檢視個人資料
    • http://www.study-area.org
Re: shell 問題
« 回覆 #6 於: 2018-09-18 17:31 »
function只是define,還沒被呼叫啊。

egg41230

  • 可愛的小學生
  • *
  • 文章數: 5
    • 檢視個人資料
Re: shell 問題
« 回覆 #7 於: 2018-09-18 17:39 »
我懂了~謝謝