shell脚本中注意事项

这篇具有很好参考价值的文章主要介绍了shell脚本中注意事项。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、 BASH_SOURCE

BASH_SOURCE[0] 等价于 BASH_SOURCE ,取得当前执行的 shell 文件所在的路径及文件名

dirname  去除文件名中的非目录部分,仅显示与目录有关的部分

如 /home/abc/test.sh 内容如下:

#!/bin/bash

echo "${BASH_SOURCE[0]}"

echo "${BASH_SOURCE}"

echo "$(dirname "${BASH_SOURCE[0]}")"

echo "$(cd "${ dirname BASH_SOURCE[0]}" && pwd)"

若在当前目录 /home 下执行 source ./abc/test.sh ,输出为:

./abc/test.sh

./abc/test.sh

./abc/

/home/abc

2. $()
$( )和 表示"命令的替换"

原理:将对反引号或$()里的内容先进行执行,然后将执行的结果代换到当前命令中

[bob@centos home]$ echo date           //直接当成字符串输出
date
[bob@centos home]$ echo `date`         //相当于函数调用,先执行date命令
Tue Sep 3 16:10:43 CST 2019
[bob@centos home]$ echo $(date)       //作用与上面的命令一样,但不是所有版本的linux系统都支持
Tue Sep 3 16:11:45 CST 2019


命令嵌套
[bob@centos home]$ echo $(echo $(date))
Tue Sep 3 16:10:43 CST 2019
[bob@centos home]$ echo `echo `date``
date
[bob@centos home]$ echo `echo \`date\``
Tue Sep 3 16:10:43 CST 2019

3、${}

PYAV_PYTHON="${PYAV_PYTHON-python3}"
echo $PYAV_PYTHON 
输出:
python3

PYAV_PIP="${PYAV_PIP-$PYAV_PYTHON -m pip}"
echo $PYAV_PIP
python3 -m pip

4、脚本中命令组合

PYAV_VENV_NAME="$(uname -s).$(uname -r).$("$PYAV_PYTHON" -c '
import sys
import platform
print("{}{}.{}".format(platform.python_implementation().lower(), *sys.version_info[:2]))
    ')"

其中$()是执行()中的命令,将结果返回给变量。
其中

uname -s 
结果:
Linux
uname -r 
结果:
4.15.0-156-generic

最后一个

python3 -c '
import sys
import platform
print("{}{}.{}".format(platform.python_implementation().lower(), *sys.version_info[:2]))'
结果:
cpython3.9

5、|| 运算符

command1 || command2

||则与&&相反。如果||左边的命令(command1)未执行成功,那么就执行||右边的命令(command2);或者换句话说,“如果这个命令执行失败了||那么就执行这个命令。

命令之间使用 || 连接,实现逻辑或的功能。

6、&& 运算符:

command1  && command2

&&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;换句话说,“如果这个命令执行成功&&那么执行这个命令”。文章来源地址https://www.toymoban.com/news/detail-507592.html

到了这里,关于shell脚本中注意事项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 弱电线布线注意什么?弱电线布线的注意事项

    弱电 弱电一般是指直流电路或音频、视频线路、网络线路、电话线路,直流电压一般在36V以内。家用电器中的电话、电脑、电视机的信号输入(有线电视线路)、音响设备(输出端线路)等用电器均为弱电电气设备。 弱电线的种类如:电话线、网络线、有线电视线及音响线

    2024年02月07日
    浏览(35)
  • postman调试注意事项

    Postman是一个强大的API调试工具,它可以帮助开发人员测试和调试API端点,以确保它们按预期工作。在使用Postman进行接口调试时,以下是一些注意事项和可能出现的问题,以及如何解决这些问题。 确保请求参数正确 在测试API接口时,确保您提供了正确的请求参数非常重要。

    2024年02月10日
    浏览(39)
  • 低代码选型注意事项

    凭借着革命性的生产力优势,低代码技术火爆了整个IT圈。面对纷繁复杂的低代码和无代码产品,开发者该如何选择? 在研究低代码平台的年数上,本人已有3年,也算是个低代码资深用户了,很多企业面临低代码选型上的困难,选平台容易,换平台难。下面基于个人理解给大

    2024年02月03日
    浏览(48)
  • 面试求职-面试注意事项

    面试技巧和注意事项有哪些? 面试是找工作过程中最重要的一个环节,因为面试成功,你才有可能得到一份工作。求职面试技巧有哪些呢?首先,我们来看看面试注意事项。 1、面试前有没有仔细了解过对应企业的情况,对方的企业文化、主营业务、未来的发展方向。如果跑过

    2024年02月09日
    浏览(28)
  • 钢网的清洗注意事项

    在smt贴片加工的生产过程中,由于钢网受重力影响会变形、定位可能会有不准确、支撑没有到位或者是设计等其他问题,这样的话在锡膏印刷的时候钢网和电路板的焊盘之间很难形成理想的密封状态,在SMT贴片加工的过程中,会引起焊锡膏在钢网跟电路板的空隙间挤出来,并

    2024年02月11日
    浏览(31)
  • 算法竞赛个人注意事项

    浅浅记录一下自己在算法竞赛中的注意事项。 注意看数大小,数学库中的函数尽量加上 * 1.0 , 转成double,防止整型溢出。 , int 型相乘如果可能溢出,乘 * 1LL 。 数据范围大于1e6,注意用快读。 浮点数输入输出: 取模,注意取成负数的情况。 全 int ,但是数据太大,全转

    2024年02月09日
    浏览(40)
  • RabbitMQ开发注意事项

    在使用 RabbitMQ 进行消息队列的开发过程中,有一些注意事项需要牢记: 安全性:确保正确配置 RabbitMQ 实例的安全性。限制对 RabbitMQ 服务器的访问权限,并使用安全的认证机制(如用户名和密码)来保护连接。 错误处理:在消费者端,务必处理可能发生的异常或错误情况。

    2024年02月07日
    浏览(40)
  • Golang 包使用注意事项

    1)在给一个文件打包时,该包对应一个文件夹,比如这里的utils文件夹对应的包名就是utils, 文件的包名通常和文件所在的文件夹名一致,一般为小写字母。 2)当一个文件要使用其它包函数或变量时,需要先引入对应的包 引入方式1:import \\\"包名\\\" 引入方式2: 3)package指令在

    2024年02月03日
    浏览(52)
  • python打包程序注意事项

    今天用python的时候,写了一个脚本来进行筛选内容,但是一次一次的进行打开和启动python,一点麻烦,所以今天就准备将脚本来进行包装成应用程序来进行运行。 目前常见的打包应用程序都是通过 Pyinstaller 这个脚本实现的,我们现在开始使用。 首先先安装Pyinstaller 我们通过

    2024年02月05日
    浏览(56)
  • 重构项目的十大注意事项

    在开始重构之前,需要明确重构的主要目的和所需实施的步骤。 在确认重构的目的和范围时,需要考虑以下几个方面: 改进代码的可读性和可维护性 。重构的主要目的是将现有代码转化为易于理解和修改的形式。 优化代码的性能 。将代码优化并减少不必要的重复,可以提

    2024年02月10日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包