Re: [問題] 如何移除 shell script 的註解
試試看這個
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)
討論串 (同標題文章)
完整討論串 (本文為第 3 之 4 篇):