OnWorks Linux 和 Windows 在线工作站

商标

工作站免费在线托管

<上一页 | 内容 | 下一页>

总结

通过添加位置参数,我们现在可以编写相当实用的脚本。 对于简单、重复的任务,位置参数使得编写非常有用的 shell 函数成为可能,这些函数可以放在用户的 的.bashrc 文件中。

我们的 系统信息页面 程序变得越来越复杂和复杂。 这是一个完整的列表,突出显示了最近的更改:



#!/斌/庆典


# sys_info_page: 输出系统信息页的程序


PROGNAME=$(基本名称 $0)

TITLE="$HOSTNAME 的系统信息报告" CURRENT_TIME=$(date +"%x %r %Z")

TIMESTAMP="由 $USER 生成 $CURRENT_TIME"


report_uptime () { cat <<- _EOF_

系统正常运行时间

$(正常运行时间)

_EOF_返回

#!/斌/庆典


# sys_info_page: 输出系统信息页的程序


PROGNAME=$(基本名称 $0)

TITLE="$HOSTNAME 的系统信息报告" CURRENT_TIME=$(date +"%x %r %Z")

TIMESTAMP="由 $USER 生成 $CURRENT_TIME"


report_uptime () { cat <<- _EOF_

系统正常运行时间

$(正常运行时间)

_EOF_返回


}


report_disk_space () { cat <<- _EOF_

磁盘空间利用率

$(df -h)

_EOF_返回

}


报告家空间(){

如果 [[ $(id -u) -eq 0 ]]; 然后猫 <<- _EOF_

家庭空间利用率(所有用户)

$(du -sh /home/*)

_EOF_

其他

猫<<- _EOF_

家庭空间利用率 ($USER)

$(du -sh $HOME)

_EOF_

返回

}


用法 () {

echo "$PROGNAME: 用法:$PROGNAME [-f 文件 | -i]" 返回

}


write_html_page () { cat <<- _EOF_

$TITLE

$TITLE

$时间戳

$(报告正常运行时间)

$(report_disk_space)

$(report_home_space)

_EOF_返回

}


# 处理命令行选项

}


report_disk_space () { cat <<- _EOF_

磁盘空间利用率

$(df -h)

_EOF_返回

}


报告家空间(){

如果 [[ $(id -u) -eq 0 ]]; 然后猫 <<- _EOF_

家庭空间利用率(所有用户)

$(du -sh /home/*)

_EOF_

其他

猫<<- _EOF_

家庭空间利用率 ($USER)

$(du -sh $HOME)

_EOF_

返回

}


用法 () {

echo "$PROGNAME: 用法:$PROGNAME [-f 文件 | -i]" 返回

}


write_html_page () { cat <<- _EOF_

$TITLE

$TITLE

$时间戳

$(报告正常运行时间)

$(report_disk_space)

$(report_home_space)

_EOF_返回

}


# 处理命令行选项

图片

总结


互动=

文件名=


而 [[ -n $1 ]]; do case $1 in

-f | - 文件)

转移

文件名=$1

;;

互动=

文件名=


而 [[ -n $1 ]]; do case $1 in

-f | - 文件)


-i | --interactive) 交互=1

;;

-h | --help) 用法退出

;;

*) 用法 >&2

退出1

;;

esac 移位

完成


#交互模式


如果 [[ -n $interactive ]]; 然后虽然为真; 做

read -p "输入输出文件名:" filename if [[ -e $filename ]]; 然后

read -p "'$filename' 存在。覆盖?[y/n/q] > " case $REPLY in

Y|y) 休息

;;

Q|q) echo "程序终止。" 出口

;;

*) 继续

;;

ESAC

elif [[ -z $文件名]]; 然后继续

其他

打破

fi

完成

fi


# 输出html页面


如果 [[ -n $filename ]]; 然后

如果触摸 $filename && [[ -f $filename ]]; 然后 write_html_page > $filename

其他

-i | --interactive) 交互=1

;;

-h | --help) 用法退出

;;

*) 用法 >&2

退出1

;;

esac 移位

完成


#交互模式


如果 [[ -n $interactive ]]; 然后虽然为真; 做

read -p "输入输出文件名:" filename if [[ -e $filename ]]; 然后

read -p "'$filename' 存在。覆盖?[y/n/q] > " case $REPLY in

Y|y) 休息

;;

Q|q) echo "程序终止。" 出口

;;

*) 继续

;;

ESAC

elif [[ -z $文件名]]; 然后继续

其他

打破

fi

完成

fi


# 输出html页面


如果 [[ -n $filename ]]; 然后

如果触摸 $filename && [[ -f $filename ]]; 然后 write_html_page > $filename

其他


echo "$PROGNAME: 无法写入文件 '$filename'" >&2 exit 1

其他

写_html_页面

fi

echo "$PROGNAME: 无法写入文件 '$filename'" >&2 exit 1

其他

写_html_页面

fi


我们还没有完成。 我们还有更多的事情可以做,我们可以做更多的改进。


OnWorks 的顶级操作系统云计算: