我有一个shell脚本,我想在不使用“sh”或“bash”命令的情况下运行。例如:
而不是:sh script.sh
我想使用:script.sh
我该怎么做呢?
P.S. (i)我不太使用shell脚本,我试着阅读关于别名的内容,但我不知道如何使用它们。
(ii)我还读了关于将脚本链接到PATH变量中的另一个文件。我正在使用我的大学服务器,我没有权限在这些位置创建文件。
我有一个shell脚本,我想在不使用“sh”或“bash”命令的情况下运行。例如:
而不是:sh script.sh
我想使用:script.sh
我该怎么做呢?
P.S. (i)我不太使用shell脚本,我试着阅读关于别名的内容,但我不知道如何使用它们。
(ii)我还读了关于将脚本链接到PATH变量中的另一个文件。我正在使用我的大学服务器,我没有权限在这些位置创建文件。
当前回答
只是:
/path/to/file/my_script.sh
其他回答
输入“# !/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
以下是我的备份脚本,将给你的想法和自动化:
服务器: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在您的路径中)
添加。(当前目录)到您的PATH变量。 你可以通过编辑你的.profile文件来做到这一点。 在.profile文件中放入以下一行 = $ PATH:。 只需确保在脚本的开头添加Shebang (#!/bin/bash)行,并使脚本可执行(使用chmod +x <文件名>)。
你可以输入sudo install(脚本的名称)/usr/local/bin/(你想输入什么来执行脚本)
例如:sudo install quickcommit.sh /usr/local/bin/quickcommit 输入密码
现在不需要.sh就可以在任何目录下运行
通过使用文件的属性使脚本文件成为可执行文件 在~/.bashrc中为可执行文件创建别名。别名<别名> = <完整脚本文件路径>' 刷新用户会话以应用它。源~ / . bashrc