我觉得这是一个愚蠢的问题,但我似乎无法得到这个。
如何创建一个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.py
和python_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
答案 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