1,查询 bash解释器 所在位置
创建前,我们需要先知道 bash 解释器所在的位置,以方便在头部写声明。一般位置是在 /bin/bash 但是有的是在 /usr/bin/bash ,所以需要查找一下。
文件位置查找命令:whereis xxx
root@armbian:~# whereis bash bash: /usr/bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz
上面指令查询到的位置是: /usr/bin/bash
2,创建一个新文件,用来写shell程序
命令:touch xxx.sh 新建一个叫 xxx.sh 的文件
root@armbian:~/ddns# pwd /root/ddns root@armbian:~/ddns# touch dd.sh root@armbian:~/ddns# la .build dd.sh
3, 用编辑器打开文件,写入shell程序
因为新系统没有安装vim编辑器,这里使用系统自带的nano编辑器:nano xxx
头部bash解释器位置声明格式如下:
#!/usr/bin/bash 或者 #!/bin/bash
拓展:也可以使用env的方式: #!/usr/bin/env bash 具体参考:#!/bin/bash 和 #!/usr/bin/env bash 的区别-CSDN博客
这里,因为上面我们查出的位置是 /usr/bin/bash,我们按下面输入结束后,退出并保存内容。
#!/usr/bin/bash # 接下来写指令即可,如下: # 例1:hostname -I | awk " " '{print $3}' # 例2:ddns -c /root/ddns/config.json
4,赋予脚本文件执行的权限
接下来, 赋予 ddns.sh 这个文件可执行权限,我们先看下当前的权限,输入ls -ll 如下
使用 chmod a+x xxx 或者 chmod +x xxx 或者 chmod 777 xxx 给文件加上可执行权限如下:
修改权限后文件颜色会发生变化, 如下:
5,脚本的执行
脚本执行方式:
sh 命令执行:sh /xx/xx/xxx.sh
bash命令执行:bash /xx/xx/xxx.sh
./xxxx.sh 执行:../xxx.sh
本次,执行命令为:sh ddns.sh 或 bash ddns.sh 或 ./ddns.sh
执行一次,看看效果,输入 ddns 回车即可(执行shell脚本不需要输入后缀),效果如下:
root@armbian:~/ddns# ./ipv6.sh // 执行方式1 2409:7c43:e9:9114:117a:ab97:6d98:d2bd root@armbian:~/ddns# bash ipv6.sh // 执行方式2 2409:7c43:e9:9114:117a:ab97:6d98:d2bd root@armbian:~/ddns# sh ipv6.sh // 执行方式3 2409:7c43:e9:9114:117a:ab97:6d98:d2bd
至此,脚本弄好了。
原文链接:https://blog.csdn.net/weixin_44011814/article/details/130463703?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168466843816800186533065%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=168466843816800186533065&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-30-130463703-null-null.blog_rank_default&utm_term=NAS%E3%80%81%E7%BE%A4%E6%99%96%E3%80%81%E9%98%BF%E9%87%8C%E4%BA%91%E3%80%81%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90%E3%80%81%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F%E3%80%81ipv6%E3%80%81ddns%E3%80%81%E8%BD%BB%E9%87%8F%E7%BA%A7%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E3%80%81%E9%93%81%E5%A8%81%E9%A9%AC%E3%80%81%E5%A8%81%E8%81%94%E9%80%9A%E3%80%81DSM%E3%80%81DSM6.0%E3%80%81%E7%BE%A4%E6%99%96nas%E3%80%81%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E3%80%81%E8%9C%97%E7%89%9B%E6%98%9F%E9%99%85%E3%80%81%E9%BB%91%E7%BE%A4%E6%99%96%E3%80%81docker%E3%80%81%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E3%80%81%E5%9F%9F%E5%90%8D%E6%B3%A8%E5%86%8C%E3%80%81%E5%AE%9D%E5%A1%94%E3%80%81%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E3%80%81nginx%E3%80%81frp%E3%80%81%E5%8A%A8%E6%80%81%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90