从脚本运行代码

时间:2015-07-13 10:50:52

标签: python bash

我觉得这是一个愚蠢的问题,但我似乎无法得到这个。

如何创建一个shell脚本,将python脚本放在子目录中并运行它。

因此,对于以下目录

├── shell_command.sh  
├── code_sub_directory  
│   ├── python_code_1.py  
│   └── python_code_2.py  
├── input_data  
    └── data.txt

我尝试创建一个从子目录shell_command.sh运行python_code_1.pypython_code_2.py的脚本(名为code_sub_directory)。

这是我到目前为止的脚本:

#!/usr/bin/python

./code_sub_directory/python_code_1.py

出现错误:

./code_sub_directory/python_code_1.py
^
SyntaxError: invalid syntax
logout

3 个答案:

答案 0 :(得分:4)

将shebang更改为#!/bin/bash。它是一个shell脚本而不是python脚本。

您的 shell_command.sh 应如下所示:

#!/bin/bash

./code_sub_directory/python_code_1.py

答案 1 :(得分:3)

重要的是,您正在编写哪个脚本,您应该相应地更改shebang线

例如:

Shell Script - #! /bin/bash
Python Script - #! /usr/bin/python
Perl Script - #! /usr/bin/perl
etc.

例如,如果您有多个版本的python。 您需要在which python

之后使用#!命令返回的值

shebang应该是第一行,因为它是由内核解释的,内核查看可执行文件开头的两个字节。如果这些是#!,那么该行的其余部分将被解释为要运行的可执行文件,并且脚本文件可用于该程序。

答案 2 :(得分:0)

如果您没有为脚本指定完整路径,则可能会遇到问题。并非总是如此,但知道它很有用。

没有完整路径:

#! /bin/bash
echo "Running Script without full paths"
./code_sub_directory/python_code_1.py

使用完整路径:

#! /bin/bash
echo "Running Script with full paths"
python /home/user/projects/code_sub_directory/python_code_1.py