如何为终端命令创建脚本文件?
在Windows中,我可以编写包含cmd命令的文件(通常是.cmd
或.bat
文件)。 当我单击这些文件时,它将打开cmd.exe
并运行它们命令文件包含。
我如何在Ubuntu中执行此操作?
我确定这是重复的,但我找不到答案。
它与这些问题类似,但它们没有回答这个问题:
将常用的终端命令存储在文件中
Ubuntu中的CMD.exe模拟器运行.cmd / .bat文件
有两种方法。
首先,最常见的是写一个文件,确保第一行是
#!/bin/bash
然后保存文件。 接下来使用chmod +x file
将其标记为可执行chmod +x file
然后,当您单击(或从终端运行文件)时,将执行命令。 按照惯例,这些文件通常没有扩展名,但您可以使用.sh
或任何其他方式结束。
几点说明:
- 任何(我的意思是任何)文件都可以在Linux中执行,前提是第一行是应该解释文件的程序的路径。 常见的例子包括
/bin/python
,/bin/sh
,/bin/dash
,但即使是奇怪的球也可以像/bin/mysql
一样工作 - Bash是一种完整的语言。 它比Windows中的cmd.exe复杂得多。 它有一个强大的编程语言,支持函数,循环,条件,字符串操作等。
- 如果遇到问题, 这些文档可能会有所帮助。
- 如果你不想使文件可执行,那么你可以通过将它作为参数传递给bash:
bash file/to/run.sh
来运行它。
一个简单的Bash示例
#!/bin/bash echo "This is a shell script" ls -lah echo "I am done running ls" SOMEVAR='text stuff' echo "$SOMEVAR"
第二种方法是使用script
记录命令。 运行script
然后只是做的东西。 当你完成了东西类型exit
和脚本将为你生成一个文件与你做的所有“东西”。 这种方法使用较少,但对于制作像宏这样的东西效果很好。 man script
更多信息。
相当于Windows批处理文件的是shell脚本,一个很好的入门指南是Bash Scripting 。
在大多数情况下,可以在命令行中输入的命令可以放在shell脚本中。
与Windows批处理文件不同的一些事情:
-
有不同的命令解释器,称为shell。 默认是bash,但如果你感兴趣,还有其他的,比如zsh,ksh,dash,perl,python等。
-
要运行shell脚本,您需要使文件可执行,您可以使用
chmod +x
-
在Ubuntu中,当前目录不是程序搜索路径,因此您需要运行
./
,而不是 -
变量名是
$
,而不是%
% -
默认情况下不会打印shell脚本中的命令,就像在批处理文件中一样。
-
文件名的扩展名可以是
.sh
或(更常见)您不需要使用扩展名。 将#!/bin/bash
放在文件的第一行 ,告诉Ubuntu使用什么程序来运行该文件。 -
评论以
#
开头,而不是rem
。
希望这有助于编写有趣的脚本!
你的意思是使用shell脚本写入文件? 以下是几种方法:
touch file
此方法将只创建一个文件,但如果该文件已存在,则只需将修改日期更改为您使用该命令的时间。
echo "text" > file
该方法将file
内容覆盖为text
。 如果要清除文件,只需执行以下操作:
echo "" > file
假设您要为其编写多行,并且您不想使用数千个echo
命令,则可以使用以下命令:
cat << EOF > file test test1 foo bar EOF
这使您可以在一个命令中写入多行。 那么file
的内容是这样的:
test test1 foo bar
如果要附加到文件,请将>
替换为>>
。
希望这可以帮助!
编辑 :哦,我明白了,所以你要用gedit编写文件,使用.sh
扩展名(可选,但这是一个好主意),然后在文件管理器上,右键单击该文件,选择Properties-> Permissions,并选中Allow executing file as program
。 然后你可以双击它,它将运行:)。 此外,如果要在终端中执行此操作,可以运行此命令使其可执行(如果不属于您,则可能需要预先添加sudo
):
chmod +x file
并运行:
./file