Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何分发我的Python/shell脚本?_Python_Bash_Shell - Fatal编程技术网

如何分发我的Python/shell脚本?

如何分发我的Python/shell脚本?,python,bash,shell,Python,Bash,Shell,我为自己编写了一个非常简单的命令行实用程序。设置包括: 包含应用程序/源的单个.py文件 运行python脚本的单个可执行(chmod+x)shell脚本 my.bash_概要文件中的一行,将我的命令别名如下:alias cmd='。shellscript'(因此它在相同的终端上下文中运行。) 因此,我可以有效地键入cmd来运行它,而且一切都很好 我的问题是,我如何才能将此分发给其他人?显然,我可以用我的代码写出这些指令,然后用它来完成,但是有没有更快的方法呢?我偶尔会看到那些你粘贴到控制台上安

我为自己编写了一个非常简单的命令行实用程序。设置包括:

  • 包含应用程序/源的单个.py文件
  • 运行python脚本的单个可执行(chmod+x)shell脚本
  • my.bash_概要文件中的一行,将我的命令别名如下:
    alias cmd='。shellscript'
    (因此它在相同的终端上下文中运行。)
  • 因此,我可以有效地键入
    cmd
    来运行它,而且一切都很好

    我的问题是,我如何才能将此分发给其他人?显然,我可以用我的代码写出这些指令,然后用它来完成,但是有没有更快的方法呢?我偶尔会看到那些你粘贴到控制台上安装东西的单行程序。我该怎么做?我似乎记得它们涉及到
    curl
    和管道到
    sh
    ,但我不记得了。

    chmod+x cmd.py

    然后他们可以键入。/cmd.py

    他们也可以使用管道

    我想补充一点,unix用户可能已经知道如何使文件可执行并运行它,所以您所要做的就是使文件对他们可用


    一定要确保他们知道运行脚本所需的python版本。

    将脚本上传到类似的位置。然后告诉您的朋友将其导入
    python
    。示例脚本:

    def print_message():
        print "This is my very special script!"
    
    if __name__ == "__main__":
        print_message()
    
    运行脚本的示例:

    username@server:~$ curl http://ideone.com/plain/O2n3Pg 2>/dev/null | python
    This is my very special script!
    

    为什么需要shell脚本?我的脚本
    cd
    s指向不同的目录,但是调用
    os.system('cd/My/path')
    不起作用,因为那是一个子shell(据我所知)。因此,基本上我的Python脚本将跳转路径写入临时文件,shell脚本读取跳转路径并进行更改。@hamtu:
    os.chdir()
    将更改正在运行的脚本的当前工作目录。
    os.chdir()
    不会完全完成任务,因为它将更改运行python脚本的子shell中的目录,而不是用户使用的shell中的目录。这就是为什么需要寻找shell脚本的原因。谢谢!你的例子正是我需要的。没问题!我应该在此添加一个警告,除非您信任该脚本,否则您永远不应该这样做,因为它可以轻松拥有您的计算机,就像在Windows中运行随机
    .exe
    。。。