Set*_*eth 130 command-line bash files executable
在Windows中,我可以写含有CMD(通常命令的文件.cmd或.bat文件)。当我点击这些文件时,它会打开cmd.exe并运行文件包含的命令。
我将如何在 Ubuntu 中执行此操作?
我确定这是重复的,但我找不到我的答案。
它类似于这些问题,但他们没有回答这个问题:
cot*_*eyr 167
有两种方法。
首先,最常见的就是写一个文件,确保第一行是
#!/bin/bash
Run Code Online (Sandbox Code Playgroud)
然后保存文件。接下来将其标记为可执行使用chmod +x file
然后,当您单击(或从终端运行文件)时,将执行命令。按照惯例,这些文件通常没有扩展名,但是您可以使它们以.sh或任何其他方式结束。
一些注意事项:
/bin/python, /bin/sh, /bin/dash,但即使是奇数球的工作也像/bin/mysqlbash 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"
Run Code Online (Sandbox Code Playgroud)
第二种方法是使用script. 运行script然后做事。完成后,类型exit和脚本将为您生成一个文件,其中包含您所做的所有“东西”。这较少使用,但对于制作宏之类的东西非常有效。man script了解更多信息。
MiJ*_*Jyn 18
您的意思是使用 shell 脚本写入文件?这里有几个方法:
touch file
Run Code Online (Sandbox Code Playgroud)
此方法将简单地创建一个文件,但如果该文件已经存在,它只是将修改日期更改为您使用该命令的时间。
echo "text" > file
Run Code Online (Sandbox Code Playgroud)
该方法会覆盖fileto的内容text。如果要清除文件,只需执行以下操作:
echo "" > file
Run Code Online (Sandbox Code Playgroud)
假设您要向其中写入多行,并且不想使用数千条echo命令,则可以使用以下命令:
cat << EOF > file
test
test1
foo
bar
EOF
Run Code Online (Sandbox Code Playgroud)
这使您可以在一个命令中编写多行。的内容file将是这样的:
test
test1
foo
bar
Run Code Online (Sandbox Code Playgroud)
如果要附加到文件,请替换>为>>.
希望这可以帮助!
编辑:哦,我明白了,所以你可以在 gedit 中编写文件,使用.sh扩展名(可选,但这是个好主意),然后在文件管理器上,右键单击文件,选择属性->权限,然后检查Allow executing file as program. 然后你可以双击它,它就会运行:)。此外,如果您想在终端中执行此操作,您可以运行此命令以使其可执行(sudo如果它不属于您,您可能需要预先添加):
chmod +x file
Run Code Online (Sandbox Code Playgroud)
并运行:
./file
Run Code Online (Sandbox Code Playgroud)
iBe*_*eve 14
相当于 Windows 批处理文件的是 shell 脚本,而一个很好的入门指南是Bash Scripting。
在大多数情况下,您可以在命令行上输入的命令可以放在 shell 脚本中。
与 Windows 批处理文件不同的几件事:
有不同的命令解释器,称为 shell。默认是 bash,但如果你有兴趣,还有其他的,比如 zsh、ksh、dash、perl、python 等。
要运行 shell 脚本,您需要使文件可执行,您可以使用 chmod +x <filename>
在Ubuntu中,当前目录不是程序搜索路径,所以需要运行./<filename>,而不是<filename>
变量名是$<varname>,不是%<varname>%
默认情况下不会打印 shell 脚本中的命令,就像在批处理文件中一样。
文件名的扩展名可以是.sh或者(更习惯)您不需要使用扩展名。放在#!/bin/bash文件的第一行,它告诉 Ubuntu 使用什么程序来运行文件。
注释以#,开头rem。
希望这会有所帮助,并有乐趣脚本!