ULS达到里程碑。出一个安装、使用、编写的教程。

CYRO4SCYRO4S 话题数:40会员, 大佬

从上周三到今天,ULS达到里程碑1。目前已经比较稳定了。简单地说一下如何安装、使用、编写。

什么是ULS?

ULS是内建系统信息变量和通用语句的Linux Shell脚本。详情参阅前贴:
https://91yunbbs.com/discussion/128/使用通用linux脚本简化linux-shell脚本的开发-91yun-exclusive

如何安装与使用?

安装

wget https://raw.githubusercontent.com/CYRO4S/Universal-Linux-Script/master/uls_install.sh && bash uls_install.sh
会同时安装:python3、virt-what。安装脚本在Debian 7、8,CentOS 6.8、7.2,Ubuntu 14.04 上通过测试。

使用

ULS脚本的执行

uls somefile.uls./somefile.uls
后者需要脚本头部的#!/usr/bin/ulschmod +x somefile.uls

重新获取系统信息

若您的硬件或网路进行过更改,请使用uls --getinfo来刷新系统信息。

针对ULS脚本撰写者:

一句话入门ULS脚本撰写

撰写ULS脚本与Shell脚本一模一样。只不过是在你想要使用ULS内建的语句或者系统信息变量时,使用ULS的关键字即可:
若您想限制脚本只能以root执行,您只需这样写:

if [[ sys.root == "false" ]]; then
    print("脚本只能以root执行。")
fi

在使用ULS关键字时,无需在两边添加双引号,ULS会自动添加。比如刚才使用的sys.root会在脚本执行时会根据情况被替换成:
"true""false"
所有ULS的内建变量与语句:
https://github.com/CYRO4S/Universal-Linux-Script/wiki/%E6%89%80%E6%9C%89%E5%86%85%E5%BB%BA%E7%9A%84%E8%AF%AD%E5%8F%A5%E5%92%8C%E5%8F%98%E9%87%8F

将您的ULS脚本封装成一键安装脚本

这会让用户感受到方便。

下载ULS脚本+执行ULS脚本封装成Shell脚本

https://github.com/CYRO4S/Universal-Linux-Script/wiki/%E8%84%9A%E6%9C%AC%E6%92%B0%E5%86%99%E8%80%85%E6%8C%87%E5%8D%97#%E4%B8%8B%E8%BD%BDuls%E8%84%9A%E6%9C%AC%E6%89%A7%E8%A1%8C-%E7%9A%84%E4%B8%80%E9%94%AE%E5%91%BD%E4%BB%A4

安装ULS+下载ULS脚本+执行ULS脚本封装成Shell脚本

https://github.com/CYRO4S/Universal-Linux-Script/wiki/%E8%84%9A%E6%9C%AC%E6%92%B0%E5%86%99%E8%80%85%E6%8C%87%E5%8D%97#%E5%B0%86%E5%AE%89%E8%A3%85uls%E4%B8%8E%E4%B8%8B%E8%BD%BDuls%E8%84%9A%E6%9C%AC%E6%89%A7%E8%A1%8C%E5%B0%81%E8%A3%85%E5%9C%A8%E4%B8%80%E8%B5%B7

示例ULS脚本

输出系统硬件、软件和网路信息:
https://raw.githubusercontent.com/CYRO4S/ULS-Scripts/master/sysinfo.uls

杂项

项目Github地址:https://github.com/CYRO4S/Universal-Linux-Script
已配备中文的README和WIKI。

评论

  • 91yun91yun 话题数:223管理员

    唯一的问题就是需要在所有执行的机子上先安装一次这个脚本。。适应性有点问题。。

  • liujeliuje 话题数:49会员

    支持. 真是太有心了. 辛苦了!!

  • singhighsinghigh 话题数:373管理员

    @91yun 说道:
    唯一的问题就是需要在所有执行的机子上先安装一次这个脚本。。适应性有点问题。。

    其实可以wget uls.sh | bash
    然后再是自己的脚本…建议楼主加上检测uls是否已经安装的部分。

  • CYRO4SCYRO4S 话题数:40会员, 大佬

    @91yun 说道:
    唯一的问题就是需要在所有执行的机子上先安装一次这个脚本。。适应性有点问题。。

    本来是想通过更改.bashrc和添加环境变量的方式实现动态替换,但是有两个问题:

    • 类似“是否以Root执行”和“返回实时公网IP” 这类需要实时动态返回结果的,不好做。
    • 即使想用.bashrc和添加环境变量的方式解决,还是需要另外装一个程序。
      因此我才一直做到现在,因为除了安装一个解释器,没有更好的办法了。我能做到的只有:

    • 让ULS更加简易地安装或集成在Shell脚本中

    • 让ULS更广泛地兼容于尽可能多的Linux发行版中
  • CYRO4SCYRO4S 话题数:40会员, 大佬

    @singhigh 说道:

    @91yun 说道:
    唯一的问题就是需要在所有执行的机子上先安装一次这个脚本。。适应性有点问题。。

    其实可以wget uls.sh | bash
    然后再是自己的脚本…建议楼主加上检测uls是否已经安装的部分。

    感谢建议,下一版本会添加功能支持。以后大家若有建议 或 BUG反馈,可以到Github向ULS提出issue。

登录注册后才能评论。