在终端中运行多行命令的方法

副标题

Posted by       "iLionLi" on April 7, 2025

在终端中运行多行 Python 代码有几种方法,以下是常见的几种方式:

方法 1:使用 Python 交互式解释器(逐行输入)

  1. 在终端输入 pythonpython3 进入交互式解释器
  2. 逐行输入你的代码(按 Enter 执行当前行)
  3. 注意保持正确的缩进(交互式解释器会自动处理)

示例:

1
2
3
4
5
6
7
8
9
10
11
>>> import torch
>>>
>>> device = "cuda" if torch.cuda.is_available() else "cpu"
>>> print(f"当前设备: {device}")
>>>
>>> if torch.cuda.is_available():
...     total_memory = torch.cuda.get_device_properties(0).total_memory / (1024 ** 3)
...     print(f"显存大小: {total_memory:.2f} GB")
... else:
...     print("CUDA 不可用,无法获取显存信息")

方法 2:使用 -c 参数(单引号包裹多行代码)

1
2
3
4
5
6
7
8
9
10
11
12
python -c '
import torch

device = "cuda" if torch.cuda.is_available() else "cpu"
print(f"当前设备: {device}")

if torch.cuda.is_available():
    total_memory = torch.cuda.get_device_properties(0).total_memory / (1024 ** 3)
    print(f"显存大小: {total_memory:.2f} GB")
else:
    print("CUDA 不可用,无法获取显存信息")
'

方法 3:使用 Here Document(适用于 Linux/macOS 的 Bash)

1
2
3
4
5
6
7
8
9
10
11
12
python << EOF
import torch

device = "cuda" if torch.cuda.is_available() else "cpu"
print(f"当前设备: {device}")

if torch.cuda.is_available():
    total_memory = torch.cuda.get_device_properties(0).total_memory / (1024 ** 3)
    print(f"显存大小: {total_memory:.2f} GB")
else:
    print("CUDA 不可用,无法获取显存信息")
EOF

方法 4:使用 PowerShell 的多行字符串(Windows)

1
2
3
4
5
6
7
8
9
10
11
12
python -c @"
import torch

device = "cuda" if torch.cuda.is_available() else "cpu"
print(f"当前设备: {device}")

if torch.cuda.is_available():
    total_memory = torch.cuda.get_device_properties(0).total_memory / (1024 ** 3)
    print(f"显存大小: {total_memory:.2f} GB")
else:
    print("CUDA 不可用,无法获取显存信息")
"@

方法 5:保存为临时文件(最可靠的方式)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 创建临时文件
cat > temp.py << EOF
import torch

device = "cuda" if torch.cuda.is_available() else "cpu"
print(f"当前设备: {device}")

if torch.cuda.is_available():
    total_memory = torch.cuda.get_device_properties(0).total_memory / (1024 ** 3)
    print(f"显存大小: {total_memory:.2f} GB")
else:
    print("CUDA 不可用,无法获取显存信息")
EOF

# 执行
python temp.py

# 删除临时文件(可选)
rm temp.py

推荐做法:

对于简单的测试代码,使用方法 1(交互式解释器)或方法 2/3/4 都可以。如果是较复杂的代码,建议使用方法 5(保存为临时文件),这样更容易编辑和调试。

  1. python -c ‘ 你的多行代码 ‘

  2. python -c @ “ 你的多行代码 “

  3. python 你的多行代码