如何在不使用";的情况下运行shell脚本;上海";或;bash“;命令?
我有一个shell脚本,我想在不使用“sh”或“bash”命令的情况下运行它。例如: 而不是:如何在不使用";的情况下运行shell脚本;上海";或;bash“;命令?,bash,shell,alias,sh,Bash,Shell,Alias,Sh,我有一个shell脚本,我想在不使用“sh”或“bash”命令的情况下运行它。例如: 而不是:sh script.sh 我想使用:script.sh 我该怎么做 另外,我不怎么使用shell脚本,我试着阅读关于别名的文章,但我不知道如何使用它们 (ii)我还阅读了有关将脚本与路径变量中的另一个文件链接的内容。我正在使用我的大学服务器,我没有在这些位置创建文件的权限 只需确保它是可执行的,使用chmod+x。默认情况下,当前目录不在您的路径上,因此您需要将其作为/script.sh-执行,或者通过
sh script.sh
我想使用:script.sh
我该怎么做
另外,我不怎么使用shell脚本,我试着阅读关于别名的文章,但我不知道如何使用它们
(ii)我还阅读了有关将脚本与路径变量中的另一个文件链接的内容。我正在使用我的大学服务器,我没有在这些位置创建文件的权限 只需确保它是可执行的,使用
chmod+x
。默认情况下,当前目录不在您的路径上,因此您需要将其作为/script.sh
-执行,或者通过限定的路径引用它。或者,如果您确实只需要script.sh
,则需要将其添加到路径中。(您可能无权修改系统路径,但几乎可以肯定地修改您自己当前环境的路径。)这还假设您的脚本以类似#的内容开头/bin/sh
您还可以使用别名,该别名实际上与shell脚本无关,但仅与shell有关,其简单程度如下:
alias script.sh='sh script.sh'
这将允许您只使用
script.sh
(字面意思-这对任何其他*.sh
文件都不起作用)而不是sh script.sh
您必须为程序启用可执行位
chmod +x script.sh
然后可以使用/script.sh
您可以将文件夹添加到.bashrc
文件(位于主目录)的路径中。
将此行添加到文件末尾:
export PATH=$PATH:/your/folder/here
在文件顶部添加一个“shebang”:
#!/bin/bash
并使文件可执行(chmod+xscript.sh
)
最后,修改路径以添加脚本所在的目录:
export PATH=$PATH:/appropriate/directory
(通常,您需要
$HOME/bin
来存储自己的脚本)这些是直接使用脚本名称的先决条件:
#!/bin/bash
)chmod u+x scriptname
使脚本可执行(其中scriptname
是脚本的名称)/usr/local/bin
文件夹下。
- 注意:我建议将其放在
下,因为该路径很可能已经添加到/usr/local/bin
变量中path
scriptname
/usr/local/bin
,请执行以下操作:
sudo nano myShell
echo Hello World!
bin
ls-lA
,以识别您的shell正在使用的启动脚本。它应该是.profile
或.bashrc
PATH="$PATH:$HOME/bin"
后面加一个空格,然后加上启动脚本名称,例如。配置文件
或。bashrc
scriptname
您可以通过编辑.profile文件来完成此操作。
在.profile文件中放入以下行
PATH=$PATH:。
只需确保在脚本开头添加Shebang(
#!/bin/bash
)行,并使脚本可执行(使用chmod+x
)。您可以键入sudo install(脚本名称)/usr/local/bin/(要键入什么来执行所述脚本)
示例:sudo安装quickcommit.sh/usr/local/bin/quickcommit
输入密码
现在可以在没有.sh的情况下在任何目录下运行以下是我的备份脚本,它将为您提供想法和自动化: 服务器:Ubuntu 16.04 PHP:7.0 Apache2、Mysql等
# Make Shell Backup Script - Bash Backup Script
nano /home/user/bash/backupscript.sh
#!/bin/bash
# Backup All Start
mkdir /home/user/backup/$(date +"%Y-%m-%d")
sudo zip -ry /home/user/backup/$(date +"%Y-%m-%d")/etc_rest.zip /etc -x "*apache2*" -x "*php*" -x "*mysql*"
sudo zip -ry /home/user/backup/$(date +"%Y-%m-%d")/etc_apache2.zip /etc/apache2
sudo zip -ry /home/user/backup/$(date +"%Y-%m-%d")/etc_php.zip /etc/php
sudo zip -ry /home/user/backup/$(date +"%Y-%m-%d")/etc_mysql.zip /etc/mysql
sudo zip -ry /home/user/backup/$(date +"%Y-%m-%d")/var_www_rest.zip /var/www -x "*html*"
sudo zip -ry /home/user/backup/$(date +"%Y-%m-%d")/var_www_html.zip /var/www/html
sudo zip -ry /home/user/backup/$(date +"%Y-%m-%d")/home_user.zip /home/user -x "*backup*"
# Backup All End
echo "Backup Completed Successfully!"
echo "Location: /home/user/backup/$(date +"%Y-%m-%d")"
chmod +x /home/user/bash/backupscript.sh
sudo ln -s /home/user/bash/backupscript.sh /usr/bin/backupscript
将/home/user更改为您的用户目录,并在终端上的任意位置键入:backupscript以运行脚本!(假设/usr/bin在您的路径中)在本例中,该文件将被称为
myShell
首先,我们需要创建此文件,我们可以从键入以下内容开始:
sudo nano myShell
echo Hello World!
注意,我们没有放置.sh
扩展名?
这是因为当我们从终端运行它时,我们只需要键入myShell
即可运行命令
现在,在nano中,顶行必须是#/bin/bash
然后您可以在继续之前离开新行
为了演示,我将添加一个基本的helloworld代码>响应
因此,我键入以下内容:
sudo nano myShell
echo Hello World!
在此之后,我的示例应该如下所示:
#!/bin/bash
echo Hello World!
现在保存文件,然后运行以下命令:
chmod +x myShell
现在,我们已经使文件可执行,我们可以使用以下命令将其移动到/usr/bin/
:
sudo cp myShell /usr/bin/
恭喜你!我们的命令现在完成了!在终端中,我们可以键入myShell
,它应该说Hello World代码>在脚本之前输入“#!/bin/sh”
。
然后将其保存为script.sh
,例如。
将其复制到$HOME/bin
或$HOME/usr/bin
不同linux发行版上的目录可能不同,但它们以'bin'
结尾,并且位于主目录中
cd$HOME/bin
或$HOME/usr/bin
键入chmod 700 script.sh
您只需在终端上键入run.sh
即可运行它。
如果不起作用,请尝试chmod+x run.sh
而不是chmod 700 run.sh
只需:
/path/to/file/my_script.sh
使任何文件成为可执行文件
假设您有一个名为migrate_linux_amd64的可执行文件,并且希望将该文件作为命令运行,如