Re: [問題] 如何移除 shell script 的註解

看板Linux作者 (..)時間14年前 (2010/06/20 03:20), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
試試看這個 rm_comment.sh -------------------------------------------------------------------- awk ' { line = rm_comment($0) if (!match(line, /^$/) && !match(line, /^[ \t]$/)) print line } function rm_comment(msg) { if ((i = index(msg, "#")) != 0 && !match(msg, /^#!/)) { str = substr(msg, 1, i-1) return str } return msg }' $1 ---------------------------------------------------------------------- 用法 sh rm_comment.sh sh17.sh 不過這只是很粗略的寫法, 遇到像這種 echo "# ............" 須要多做額外的判斷 ※ 引述《hjklzxcv (none)》之銘言: : hi all : 在此的 shell script 是指 sh 與 bash 所撰寫的 script : 一般註解的形式為 # xxxx : 想請教是否有類似 strip 的工具 : 可以將 script 內的註解,正確的移除掉 : 以 sh17.sh 為例 http://tinyurl.com/2c8duyz : 保留 #!/bin/bash ,移除中英文註解 : 最後呈現應為: : #!/bin/bash : PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin : export PATH : network="192.168.1" : for sitenu in $(seq 1 100) : do : ping -c 1 -w 1 ${network}.${sitenu} &> /dev/null && result=0 || : result=1 : if [ "$result" == 0 ]; then : echo "Server ${network}.${sitenu} is UP." : else : echo "Server ${network}.${sitenu} is DOWN." : fi : done : 有請神人了,謝謝 :) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.113.140 ※ 編輯: Feijing 來自: 118.160.113.140 (06/20 03:25)
文章代碼(AID): #1C7HY8qG (Linux)
文章代碼(AID): #1C7HY8qG (Linux)