Linux体系自动化sh脚本

打印 上一主题 下一主题

主题 800|帖子 800|积分 2400

前言

Linux体系中,可以编写自动化sh脚本,并在终端中自动加载。可用来简化复杂下令或创建专属下令,提升工作服从。
功能


  • init_workspace:可以识别Host和Docker,初始化工作目次
  • source_my_func:完成自加载,用于更新此自动化sh脚本
  • .bashrc (system and docker):终端自动加载,实用于Host和Docker
  • custom_function:编写自定义函数,简化复杂下令,创建专属下令
优点


  • 自动化提升服从
  • 同一脚本可同时用于System内和Docker内
  • 化简复杂下令,形成本身的专属下令
  • 保存下令汗青记录
  • 改善打字慢题目
  • 自动补全改善错别字题目
步调


  • 创建sh脚本
    创建sh脚本,并完成功能,例如:script.sh
  • 添加bash解释器
    在sh脚本的首行添加bash解释器,一般为:#!/bin/bash
  • 添加可实行权限
    为sh脚本添加可实行权限:chmod +x [script.sh]
  • 暂时加载sh脚本
    利用 source 下令在终端中暂时加载sh脚本:source script.sh
    永久见效
    在 .bashrc 文件中自动加载sh脚本:vim ~/.bashrc
示例

文件名称:my_func.sh
  1. #!/bin/bash
  2. # 全局变量
  3. workspace="/workspace"
  4. work_user="root"
  5. # relative_path="shell/script/my_func.sh"
  6. relative_path="CodeLib/Shell/script/my_func.sh"
  7. # main函数
  8. function my_func_main() {
  9.     # 调用函数,初始化workspace
  10.     init_workspace
  11.     echo "my_func init success, workspace: $workspace"
  12. }
  13. # 初始化workspace函数
  14. function init_workspace() {
  15.     if [ -d "/workspace" ]; then
  16.         workspace="/workspace"
  17.         work_user="root"
  18.     else
  19.         workspace="/home/nsjim/work"
  20.         work_user="nsjim"
  21.     fi
  22.     # echo "workspace init success: $workspace"
  23. }
  24. # 添加可执行权限
  25. function add_x() {
  26.     # chmod +x $1.sh
  27.     chmod -R +x $1
  28. }
  29. # 添加读写权限
  30. function add_rw() {
  31.     chmod -R a+rw $1
  32. }
  33. # 开启docker
  34. function docker_start() {
  35.     docker start mlir_ns
  36.     docker exec -it mlir_ns /bin/bash
  37. }
  38. # 进入docker
  39. function docker_exec() {
  40.     docker exec -it mlir_ns /bin/bash
  41. }
  42. # 初始化docker服务(docker内)
  43. function docker_init() {
  44.     # ssh service
  45.     eval ssh-agent
  46.     service ssh start
  47. }
  48. # 重新加载此脚本
  49. function source_my_func() {
  50.     init_workspace
  51.     # source /workspace/CodeLib/Shell/script/my_func.sh
  52.     source ${workspace}/${relative_path}
  53. }
  54. # 显示此脚本路径
  55. function show_my_func_path() {
  56.     init_workspace
  57.     echo "script path: ${workspace}/${relative_path}"
  58. }
  59. # 加载PATH环境变量
  60. function export_path() {
  61.     init_workspace
  62.     # 环境变量使用冒号隔开,使用如下命令可添加环境变量
  63.     # export PATH=/path/to/dir:$PATH
  64.     export PATH=$workspace/CodeLib/Python/Tool:$PATH
  65. }
  66. # 加载PYTHONPATH环境变量
  67. function export_pythonpath() {
  68.     init_workspace
  69.     # 环境变量使用冒号隔开,使用如下命令可添加环境变量
  70.     # export PYTHONPATH=/path/to/dir:$PYTHONPATH
  71.     export PYTHONPATH=$workspace/model-apt/ml-cvnets:$PYTHONPATH
  72. }
  73. #### 调用main函数
  74. my_func_main
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

惊落一身雪

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表