从文本文件中运行bash命令

76

我有一些命令在txt文件中,我需要一行一行地执行它们。 我应该如何做?


15
"bash file.txt" 翻译为中文是什么意思? - Vaughn Cato
1
可能是重复的问题:ubuntu将文本文件作为命令运行 - mido
您可能还需要使用 dos2unix file.txt 命令将其转换为 UNIX 格式。 - understorey
5个回答

129

只需执行bash file命令:

$ cat file 
date
echo '12*12' | bc

$ bash file
Mon Nov 26 15:34:00 GMT 2012
144

如果存在别名,只需运行bash -i file

不必担心文件扩展名或执行权限。


这适用于本地命令,但我在我的文件中存储了一个别名,这种方式不起作用。我收到错误消息:“未找到命令'mycm'...”。还有其他方法吗? - Hank Phung
1
@HankPhung bash -i file - Chris Seymour

27

在终端中只需输入:

bash path/to/my/file.txt

然后你将获得每行被执行的结果。


0
除了上面提到的`bash `之外,`source `也可以使用。它几乎相同,只是命令在同一个shell中执行,因此脚本中的任何副作用都会在当前shell中保留;详细信息请参考这里

-3

只需将文件的扩展名更改为.sh

在文件开头添加/bin/bash

将文件权限更改为可执行

然后在命令行中简单地运行./filename.sh命令。文件中的所有命令都将被执行


如果提问者不知道如何执行存储在文件中的命令,我怀疑他能否在没有任何额外说明的情况下重命名或更改权限。 - Rubens Mariuzzo
如果他需要执行命令,那显然他对命令行有所了解(虽然我不指望他对shell很熟悉)。我觉得在shell中工作是一种巨大的美感和愉悦。我告诉过他一些关于shell编程的基础知识。在stackoverflow上,某些编码总是受欢迎的。那么,如果我告诉他有关shell编码的内容,这有什么问题吗?为什么会被踩? - Debobroto Das

-6

将扩展名更改为.sh,并在第一行添加#!/usr/bin/env bash,正如其他人所说的那样,执行chmod +x


6
修改文件的扩展名并不重要也不相关。 - Rubens Mariuzzo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接