• 请不要在回答技术问题时复制粘贴 AI 生成的内容
davinci
V2EX  ›  程序员

一个有趣的 shell 脚本。可以将你的 shell 或 Python 脚本变为“内置“命令

  •  
  •   davinci · Feb 11, 2017 · 7168 views
    This topic created in 3552 days ago, the information mentioned may be changed or developed.

    假设你有一个脚本名为 doSomething.sh 接收一个参数

    想要运行它需要

    $ cd /your/script/enclosing/folder
    
    $ ./doSomething.sh arg  或  $ source doSomething.sh arg 或  $ . doSomething.sh arg
    

    运行该脚本后

    只需

    $ doSomething arg
    

    即可。

    GitHub https://github.com/hijerusalem/custom-builtin-commands

    在 macOS 下可以运行,不知道在 Linux 下能不能运行。如果觉得不错欢迎 star ,有 bug 欢迎 issue

    Supplement 1  ·  Feb 11, 2017
    一个多月前,我开始准备我的毕业设计。为了简化一些繁琐的流程,我自学了一些 shell 编程的知识。这些脚本大概就是在那时候写的。今天把它放出来,没想到引来这么多人关注😅。正如标题的引号所示,这里的内置并不是真正的内置。大家的回复也让我学到了一些东西,如果还有知识性的补充,欢迎大家继续评论。
    40 replies  •  2017-02-13 09:20:11 +08:00
    a87150
    a87150
    Feb 11, 2017
    1
    环境变量?
    d33n99
    d33n99
    Feb 11, 2017
    2
    有趣在哪里?
    knightdf
    knightdf
    Feb 11, 2017
    3
    有趣在哪里?
    rashawn
    rashawn
    Feb 11, 2017 via iPhone
    4
    ………
    我直接有个快捷键 把文件放到$HOME/bin 文件夹中 然后 chmod +x
    silymore
    silymore
    Feb 11, 2017 via Android
    5
    ln 到 bin 下就可以了吧
    wohenyingyu02
    wohenyingyu02
    Feb 11, 2017 via iPhone
    6
    ...
    davinci
    davinci
    OP
    Feb 11, 2017
    7
    @rashawn 差不多。那个脚本包就是把移动文件,更改权限,制作,移除命令流程给简化了。省去一些敲键盘的时间。
    davinci
    davinci
    OP
    Feb 11, 2017
    8
    @silymore 是的,我就是把一系列过程,给封装了一下。就觉得封装一下比较方便。
    aristotll
    aristotll
    Feb 11, 2017❤️5
    9
    提个建议 源代码里面直接 chmod 777 真的好吗太粗暴了吧
    skydiver
    skydiver
    Feb 11, 2017 via Android
    10
    ……
    neilp
    neilp
    Feb 11, 2017 via iPhone
    11
    请告诉我哪里有趣了?
    davinci
    davinci
    OP
    Feb 11, 2017
    12
    @aristotll 请问应该如何修改?
    davinci
    davinci
    OP
    Feb 11, 2017
    13
    @d33n99 @neilp 这里的有趣是我个人感觉。前段时间,有学一点 shell 编程。在写这个脚本包的时候,融汇了许多我当时新学的知识,所以觉得比较有趣。把他公开出来,也是出于学习目的。
    beiping96
    beiping96
    Feb 11, 2017
    14
    chmod 777
    。。。。。。
    SlipStupig
    SlipStupig
    Feb 11, 2017
    15
    面向 star 编程......
    Ellison
    Ellison
    Feb 11, 2017
    16
    你高兴就好
    CRVV
    CRVV
    Feb 11, 2017
    17
    这不叫“内置命令”

    `cd` 这种不在 `$PATH` 里的才叫
    davinci
    davinci
    OP
    Feb 11, 2017
    18
    @CRVV 所以我才在标题里加引号。我曾经看过 man cd
    loading
    loading
    Feb 11, 2017
    19
    还好,脚本里面没有 rm -rf /
    233
    Vicer
    Vicer
    Feb 11, 2017 via Android
    20
    没看到哪里有趣。
    jyf007
    jyf007
    Feb 11, 2017 via Android
    21
    @SlipStupig 太暴力了,说的好,还不如 chmod a+x
    Kilerd
    Kilerd
    Feb 11, 2017 via iPhone
    22
    看到那个驼峰命名,我就给差评。
    goodryb
    goodryb
    Feb 11, 2017
    23
    楼主欺负我读书少?
    davinci
    davinci
    OP
    Feb 11, 2017
    24
    @goodryb 是楼主读书少。对 shell 编程只知皮毛,来这献丑了😅
    Yeoman
    Yeoman
    Feb 11, 2017❤️1
    25
    还在想什么黑科技能弄出 shell 内置命令呢
    aysi
    aysi
    Feb 11, 2017❤️1
    26
    秀无知,必须差评
    kkk330
    kkk330
    Feb 11, 2017 via iPhone
    27
    builtin 命令就那几个
    fatedier
    fatedier
    Feb 12, 2017❤️1
    28
    支持一下,加油~
    fuxkcsdn
    fuxkcsdn
    Feb 12, 2017 via iPhone
    29
    感觉楼主得考虑换个 ID 才能继续在 V2EX 上混了🐶
    SharkIng
    SharkIng
    Feb 12, 2017 via iPhone
    30
    ln -s /path/to/script /use/local/bin/
    zhidian
    zhidian
    Feb 12, 2017
    31
    哈哈哈哈哈,我以前 sleep 5 && banner cool 都会觉得有趣 ==(好新奇 /novel ),哈哈哈哈哈。想想自己好逗啊 ==
    zhidian
    zhidian
    Feb 12, 2017
    32
    我觉得 star 这个 repo 的人也会火 ==。
    param
    param
    Feb 12, 2017 via Android
    33
    我在~下有一個 bin 目錄,然後我把~/bin 加到 PATH 變量裡
    lightening
    lightening
    Feb 12, 2017
    34
    哈哈 虽然是最基础的知识,不过大家都是这样过来的 :-)
    zgqq
    zgqq
    Feb 12, 2017 via Android
    35
    @zhidian 等下我就去 star ,火不了你赔钱
    shanks
    shanks
    Feb 12, 2017
    36
    还是努力提高自己的姿势水平
    widewing
    widewing
    Feb 12, 2017 via Android
    37
    这难道不是加个 path 的事吗?
    Doubear
    Doubear
    Feb 12, 2017
    38
    你呀! naive!!!
    ryd994
    ryd994
    Feb 12, 2017
    39
    这………………
    我一行能搞定
    echo "alias \"$1=$(pwd)/$1\" " >>~/.bashrc

    大概是这个意思,懂得明白个意思就好了

    其实呢,我自己是 PATH 加~/.local/bin
    然后常用的一些自己的脚本都在这里面
    nanpuyue
    nanpuyue
    Feb 13, 2017
    40
    楼主还是要学习一个,提高自己的姿势水平。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5598 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 154ms · UTC 02:36 · PVG 10:36 · LAX 18:36 · JFK 21:36
    ♥ Do have faith in what you're doing.