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

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

  •  
  •   davinci · Feb 11, 2017 · 6577 views
    This topic created in 3381 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
        1
    a87150  
       Feb 11, 2017
    环境变量?
    d33n99
        2
    d33n99  
       Feb 11, 2017
    有趣在哪里?
    knightdf
        3
    knightdf  
       Feb 11, 2017
    有趣在哪里?
    rashawn
        4
    rashawn  
       Feb 11, 2017 via iPhone
    ………
    我直接有个快捷键 把文件放到$HOME/bin 文件夹中 然后 chmod +x
    silymore
        5
    silymore  
       Feb 11, 2017 via Android
    ln 到 bin 下就可以了吧
    wohenyingyu02
        6
    wohenyingyu02  
       Feb 11, 2017 via iPhone
    ...
    davinci
        7
    davinci  
    OP
       Feb 11, 2017
    @rashawn 差不多。那个脚本包就是把移动文件,更改权限,制作,移除命令流程给简化了。省去一些敲键盘的时间。
    davinci
        8
    davinci  
    OP
       Feb 11, 2017
    @silymore 是的,我就是把一系列过程,给封装了一下。就觉得封装一下比较方便。
    aristotll
        9
    aristotll  
       Feb 11, 2017   ❤️ 5
    提个建议 源代码里面直接 chmod 777 真的好吗太粗暴了吧
    skydiver
        10
    skydiver  
       Feb 11, 2017 via Android
    ……
    neilp
        11
    neilp  
       Feb 11, 2017 via iPhone
    请告诉我哪里有趣了?
    davinci
        12
    davinci  
    OP
       Feb 11, 2017
    @aristotll 请问应该如何修改?
    davinci
        13
    davinci  
    OP
       Feb 11, 2017
    @d33n99 @neilp 这里的有趣是我个人感觉。前段时间,有学一点 shell 编程。在写这个脚本包的时候,融汇了许多我当时新学的知识,所以觉得比较有趣。把他公开出来,也是出于学习目的。
    beiping96
        14
    beiping96  
       Feb 11, 2017
    chmod 777
    。。。。。。
    SlipStupig
        15
    SlipStupig  
       Feb 11, 2017
    面向 star 编程......
    Ellison
        16
    Ellison  
       Feb 11, 2017
    你高兴就好
    CRVV
        17
    CRVV  
       Feb 11, 2017
    这不叫“内置命令”

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

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

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