把Shell脚本设置为系统命令

作者: yangjh | 来源:发表于2017-03-29 22:48 被阅读143次

    Shell : hello world

    1. 编写shell脚本
    2. 将shell脚本设置为在任意路径下可执行的命令

    1. shell脚本

    • 实现将项目中的本地化文件备份出来,并checkout文件
    #!/bin/bash
    echo "开始拷贝 *server-XXX* 配置文件 到 *bak*"
    server_home=~/dev/xxx/server-xxx
    server_bak_home=~/dev/xxx/bak/server-config
    
    cd ${server_home}
    cp -f ${server_home}/src/main/resources/application.yml  ${server_bak_home}/main/
    cp -f ${server_home}/src/test/resources/application.yml  ${server_bak_home}/test/
    cp -f ${server_home}/pom.xml   ${server_bak_home}
    
    git co ${server_home}/src/main/resources/application.yml
    git co ${server_home}/src/test/resources/application.yml
    git co ${server_home}/pom.xml
    echo " done! *server-xxx* 配置文件已拷贝完成";
    
    • 将上述配置文件从bak中拷贝到项目中
    #!/bin/bash
    echo "从 *bak* 中开始拷贝 *server-xxx* 配置文件"
    server_bak_home=~/dev/xxx/bak/server-config
    server_home=~/dev/xxx/server-lean
    
    cd ${server_bak_home}
    
    cp -f  ./main/application.yml  ${server_home}/src/main/resources/
    cp -f  ./pom.xml    ${server_home}/
    cp -f  ./test/application.yml  ${server_home}/src/test/resources/
    
    echo "done! 配置文件已从 *bak* 拷贝到 *server-xxx* 中";
    
    2. 将shell脚本设置为系统命令

    因为我使用的是zsh,所以编辑~/.zshrc文件,添加:

    alias stb="sh  ~/dev/xxx/shells/servertobak.sh"
    alias bts="sh  ~/dev/xxx/shells/baktoserver.sh"
    

    通过上面两步,就可以在任意目录执行stb和bts命令了。

    tips: 通过下面的方式可以将密码传给需要输入密码的命令,在自动化脚本等方式可以使用

    echo 'your password' | sudo npm run dev 
    

    Done!

    相关文章

      网友评论

      • 卿可津:用 alias 的方式执行命令会提示权限不足的问题。。sudo 执行又提示找不到命令。。奇怪,我只是自己写了一个
        ```
        arg1=$1
        ps aux | grep "$arg1" | awk '{print $2}' | xargs kill
        ```
        请问有办法解决吗?
        卿可津:@卿可津 已解决,没有修改文件权限好尴尬, chmod 之后可以了,感谢你的文章!网上很多都太复杂太乱了写的。

      本文标题:把Shell脚本设置为系统命令

      本文链接:https://www.haomeiwen.com/subject/jigyottx.html