2013-04-20 366 views
0

你好我想知道如何從現有的shell腳本創建一個shell腳本?我目前在已經完成的腳本應創建,它看起來像這樣:如何從現有腳本創建shell腳本?

#!/bin/bash 

uptime=$(</proc/uptime) 
uptime=${uptime%%.*} 
user=$(whoami) 
seconds=$((uptime%60)) 
minutes=$((uptime/60%60)) 
hours=$((uptime/60/60%24)) 
days=$((uptime/60/60/24)) 
echo -e " 
\033[0;35m+++++++++++++++++++: \033[0;37mServer Data\033[0;35m :+++++++++++++++++++ 
\033[0;35m+ \033[0;37mHostname \033[0;35m= \033[1;32m`hostname` 
\033[0;35m+ \033[0;37mKernel \033[0;35m= \033[1;32m`uname -r` 
\033[0;35m+  \033[0;37mTime \033[0;35m= \033[1;32m`date +%k:%M:%S` 
\033[0;35m+ \033[0;37mUptime \033[0;35m= \033[1;32m$days d ~ $hours h ~ $minutes m ~ $seconds s 
\033[0;35m+  \033[0;37mCPU \033[0;35m= \033[1;32m`cat /proc/cpuinfo | grep 'model name' | cut -c 14-100 | uniq` 
\033[0;35m+ \033[0;37mMemory \033[0;35m= \033[1;32m`cat /proc/meminfo | grep MemTotal | awk {'print $2'}` kB 
\033[0;35m++++++++++++++++++++: \033[0;37mUser Data\033[0;35m :++++++++++++++++++++ 
\033[0;37m+ \033[0;37mUsername \033[0;35m= \033[1;32m$user 
\033[0;35m+ \033[0;37mSessions \033[0;35m= \033[1;32m`who | grep $user | wc -l` of 14 
\033[0;35m+++++++++++++++++++++++++++++++++++++++++++++++++++++\e[m 
" 

唯一的問題我看,就像是「貓」或「grep」可以是命令會讓他們echo'ed出來解釋,而不是隻是打印出來。所以這就是爲什麼我在這裏問這樣的事情可能是怎麼一回事。

在此先感謝

回答

2

嘗試這樣做使用這裏-DOC和特招用單引號(無插值):

cat<<'EOF'>script.sh 
#!/bin/bash 

uptime=$(</proc/uptime) 
uptime=${uptime%%.*} 
user=$(whoami) 
seconds=$((uptime%60)) 
minutes=$((uptime/60%60)) 
hours=$((uptime/60/60%24)) 
days=$((uptime/60/60/24)) 
echo -e " 
\033[0;35m+++++++++++++++++++: \033[0;37mServer Data\033[0;35m :+++++++++++++++++++ 
\033[0;35m+ \033[0;37mAddress \033[0;35m= \033[1;32m109.163.233.49 
\033[0;35m+ \033[0;37mHostname \033[0;35m= \033[1;32m`hostname` 
\033[0;35m+ \033[0;37mKernel \033[0;35m= \033[1;32m`uname -r` 
\033[0;35m+  \033[0;37mTime \033[0;35m= \033[1;32m`date +%k:%M:%S` 
\033[0;35m+ \033[0;37mUptime \033[0;35m= \033[1;32m$days d ~ $hours h ~ $minutes m ~ $seconds s 
\033[0;35m+  \033[0;37mCPU \033[0;35m= \033[1;32m`cat /proc/cpuinfo | grep 'model name' | cut -c 14-100 | uniq` 
\033[0;35m+ \033[0;37mMemory \033[0;35m= \033[1;32m`cat /proc/meminfo | grep MemTotal | awk {'print $2'}` kB 
\033[0;35m++++++++++++++++++++: \033[0;37mUser Data\033[0;35m :++++++++++++++++++++ 
\033[0;37m+ \033[0;37mUsername \033[0;35m= \033[1;32m$user 
\033[0;35m+ \033[0;37mSessions \033[0;35m= \033[1;32m`who | grep $user | wc -l` of 14 
\033[0;35m+  \033[0;37mAdmin \033[0;35m= \033[1;32mSergey Ruslan 
\033[0;35m+++++++++++++++++++++++++++++++++++++++++++++++++++++\e[m 
" 
EOF 
+0

真棒非常感謝你:) – Sebastian 2013-04-20 12:55:14

+0

很高興幫你 – 2013-04-20 12:55:45