shell脚本中引号的嵌套原则是什么,括号和引号的功能区别有哪些?‘‘,““,`,[],{},()

一文搞定Shell编程中的单引号、双引号、反引号和转义符的区别和使用 linux中常见的单引号,双引号等符号的区别和使用 阅读详情

引号的嵌套原则

在Shell脚本中,三种主要的引号是单引号 (')、双引号 (")、和反引号(`)。这些引号的嵌套遵循以下原则:

  1. 单引号 ('):

    • 单引号中的内容被完全保留,原样输出。即使是特殊字符和变量也不会被解释。
    • 单引号不能嵌套使用,不能在单引号内再使用单引号。
    echo 'This is a literal $variable and `command`'
    

  2. 双引号 ("):

    • 双引号内的内容会被部分保留。变量和命令替换(例如 $variable 和 `command`)仍然有效,但大部分特殊字符如空格、tab等将会被保留。
    • 双引号可以嵌套单引号,但不能直接嵌套双引号或反引号。
    echo "This is a variable $variable and command `date`"

  3. 反引号(`):

    • 反引号中的内容被当作命令执行,结果会被替换为命令的输出。
    • 反引号可以嵌套在双引号中,但不建议嵌套反引号内部再使用反引号,可以使用 $(...) 代替。
    echo "The current date is `date`"
  4. 组合使用:

    • 单引号可以嵌套在双引号中使用,反之亦然,但要注意不能直接嵌套同样的引号类型。
    echo "This is a single quoted text: 'text'"

括号和引号的功能区别

  • 引号的功能:

    • 单引号 ('):用于防止Shell解释字符串中的内容,所有字符被原样输出。
    • 双引号 ("):保护字符串中大部分字符不被解释,但允许变量替换和命令替换。
    • 反引号(`):用于命令替换,Shell将执行反引号内的命令,并将输出结果放入命令中。
  • 括号的功能:

    • 圆括号 (()):

      • 用于命令分组,将多个命令放在一个子Shell中执行。
      • 用于定义数组。
      (command1; command2) arr=(value1 value2 value3)

    • 方括号 ([]):

      • 单个方括号用于条件测试,等同于test命令。
      • 双方括号 [[]] 是扩展的条件测试语法,支持更多特性,比如逻辑运算符。
      if [ "$var" -eq 1 ]; then echo "Equal"; fi

    • 大括号 ({}):

      • 用于变量扩展或者序列生成。
      • 在命令中用于块分组。
      • 在数组操作中表示数组的所有元素。
      { echo "This is a block"; echo "of commands"; } echo ${var}_suffix

还有$(),这个与引号之间的关系和嵌套是怎样的?

$() 是Shell脚本中的命令替换语法,用于在脚本中执行命令并将其输出结果作为字符串返回。它与反引号(`)功能类似,但更灵活、可读性更好,而且支持嵌套。以下是 $() 与引号之间的关系和嵌套规则:

$() 与引号的关系

  1. 在双引号中的使用:

    • 可以在双引号内部使用 $() 进行命令替换。命令的输出会被当作字符串的一部分处理。
    echo "The current directory is $(pwd)"

    在这个例子中,$(pwd) 的结果会被替换为当前目录,并作为双引号中的一部分输出。

  2. 在单引号中的使用:

    • 单引号中的内容不会进行任何解释,因此 $() 在单引号中无法执行。
    echo 'The current directory is $(pwd)' # 不会替换为目录路径,而是原样输出
  3. 嵌套使用:

    • $() 支持嵌套使用,可以在 $() 内部再使用 $() 进行多层命令替换。
    bash

    复制代码

    echo "The date is $(echo $(date))"

    在这个例子中,内部的 $(date) 会先执行,然后将其结果传递给外部的 echo 命令,再次进行命令替换。

$() 与其他括号和引号的嵌套

  1. $() 与圆括号 ():

    • 圆括号 () 可以与 $() 结合使用,用于执行一组命令并返回其输出。
    result=$( (command1; command2) )

    在这个例子中,command1 和 command2 会在一个子Shell中执行,其输出将赋值给 result。

  2. $() 与方括号 [] 和 [[ ]]:

    • $() 可以与条件测试结合使用,在条件中执行命令并使用其结果。
    if [ "$(command)" == "expected_output" ]; then echo "Match"; fi

    这里 $(command) 的输出会与 expected_output 进行比较。

  3. $() 与大括号 {}:

    • 大括号 {} 通常用于变量扩展和命令块。在 $() 中使用大括号时,需要注意其上下文。
    echo "This is the file path: ${path:-$(pwd)}"

    在这个例子中,${path:-$(pwd)} 表示如果 path 变量未定义,则使用当前目录作为默认值。

小结

  • 引号主要用于字符串的处理,防止或允许Shell对内容的解析,而括号用于命令分组、条件测试以及数组操作等场景。
  • $() 是一种命令替换语法,支持与双引号、括号等组合使用,并且可以嵌套。
  • 它与反引号`功能类似,但更灵活且支持嵌套,推荐在现代Shell脚本中使用 $() 代替反引号。

文章来源:

https://chatgpt.com/share/7713cde5-5c3f-4ac4-b89a-b43dc3dd1c19

实测iOS和安卓大不同!用NFC触发小程序跳转的完整避坑指南(含NFC Tools配置) 本文深入解析iOS与安卓在NFC触发小程序跳转时的核心差异,提供微信与支付宝小程序的NFC实现方案及优化技巧。涵盖跨平台兼容性测试方法论、性能优化策略及异常处理方案,帮助开发者避开常见陷阱,提升跳转成功率。特别针对NFC Tools配置和微信Universal Link使用进行详细指导。 阅读详情

相关推荐

制造业批次管理中双计量单位动态转换的实践指南

本文详细介绍了制造业批次管理中双计量单位动态转换的实践指南,特别是在SAP系统中的配置与操作步骤。通过实际案例展示了如何解决采购与生产部门计量单位不一致的问题,提升物料管理效率。重点讲解了批次特性配置、移动类型调整及常见问题排查方法,适用于金属加工、化工等多个行业。

weixin_29228203的博客 159

` 这个符号叫什么名字?怎么打出来?

把拼音的“中”字 按“caps lock”键 变为A 然后按 上是~,下是`的键 就打出来了 至于叫什么名字,我认为呢,它属于特殊符号,是没有名字的。

weixin_45932157的博客 6万+

node-red 可视化探索

配置socket选择配置流程产生url。

weixin_44133581的博客 3413

mysql的` `和‘ ‘用处和区别

对mysql的符号` `与' '进行深入的剖析和解读,帮助大家解决创建库、表时等引号的符号问题,用最精简的案例,最简单的方法来帮助大家理解。

m0_64882384的博客 6219

Python实战:用SkillMetrics库5分钟搞定泰勒图绘制(附完整代码)

本文详细介绍了如何使用Python的SkillMetrics库快速绘制专业泰勒图,以直观对比多个模型的预测性能。通过整合相关系数、标准差和中心化均方根误差三个核心指标,该工具能帮助数据科学家和研究者高效完成模型评估与可视化,提升分析报告质量。文章提供了从环境配置、数据准备到高级定制与子图对比的完整代码示例。

7z8x2c4v6b9的博客 372

代码实现 —— 基于 STM32 的可见光通信系统课程设计

基于STM32F103ZET6,源码如需移植,需要修改定时器捕获通道引脚,及定时器,如果你也有这个课设任务,希望对你有所帮助。

不善挽留 1万+

Linux Shell - 单引号 ( ‘ )、双引号 ( “ ) 和反引号 ( ` )

Linux Shell - 单引号 ( ‘ )、双引号 ( “ ) 和反引号 ( ` )

程永强 3万+

用limma包进行多组差异表达分析

写在前面:最近在使用limma包进行差异表达分析,参考了网上许多教程都觉得说的云里雾里,很不清楚。经过我自己一段时间非常痛苦的钻研,弄明白了,解决了我的实际需求。于是决定将我的分析经验写下来,分享给需要的人。 首先加载前期预处理好的表达矩阵。(我的原始表达矩阵文件已附在文后,大家有需要可以下载实践) setwd("E://Rworkplace") data<-read.table...

weixin_40640700的博客 4万+

抑音符与转义符

一、抑音符 使用Markdown编辑博客时,可以标记文字(浅红底色),同时,可以显示Markdown代码,使得Markdown代码不会在页面上显示为特殊的字符。 在英文输入法状态下,左上角,esc下的~按键,注意是"``",不是“~”。 显示效果 代码 抑音符 `抑音符` 二、转义符 即反斜线\,与抑音符效果类似,可以将原本在页面上显示的特殊字符显示为代码 显示效果 代码 log⁡2x\log_2 xlog2​x $\log_2 x$ $\log_2 x$ \$\lo

weixin_45634365的博客 1万+

将赛灵思 SDK 工程移植到 Vitis 的分步指南

注:本文转自赛灵思中文社区论坛,源文链接在此。本文原作者为XILINX工程师。 以下为个人译文,仅供参考,如有疏漏之处,还请不吝赐教。 您是赛灵思软件开发套件 (SDK) 用户吗? 您是否正在计划将自己的工程移植到 Vitis 软件平台? 那么本篇工程移植分步指南将能祝您一臂之力。 从 2019.2 版开始,赛灵思 SDK 开发环境已统一整合到全功能一体化的 Vitis™ 统一软件平台中。 尊敬的 SDK 用户,您只需轻点几下鼠标即可体验这一功能丰富的工具! 马上开始将工程从赛灵思 S

weixin_45825101的博客 1732

国科大学习资料--机器学习方法与应用(叶齐祥)-期末考试题整理

国科大学习资料–机器学习方法与应用-期末考试题整理 ============================================================================================================================================================================================ =======================================

无名何许人的博客 2852

shell|Shell 中各嵌套语法元素的特性

语法元素元素中可以包含的语法单元换行符分隔的命令(command)空格分隔的语法单元(token);可以被转义符转义空格分隔的语法单元(token)反引号命令替换语法、括号命令替换语法、单引号字符串、双引号字符串、带大括号的变量引用、不带大括号的变量引用;可以被转义符转义反引号命令替换语法换行符分隔的命令(command)【以反引号作为结束标记】;其中不允许包含转义符括号命令替换语法换行符分隔的命令(command)【以作为结束标记】;其中允许包含转义符单引号字符串其中的。

长行 1087

语义分割(Semantic Segmentation)近年发展综述

目标:为图像中每个像素分配一个语义类别标签(如“道路”、“行人”、“天空”),不区分同类实例。关键挑战精确边界恢复(高空间分辨率)全局上下文理解(大感受野)计算效率与精度平衡小样本/弱监督泛化语义分割的十年演进,是一条从专用→通用、封闭→开放、慢速→实时、像素→语义2015:FCN/U-Net 奠基;2018:DeepLabv3+/PSPNet 实现高精度;2020:HRNet+OCR 登顶竞赛;2021:SegFormer 开启 Transformer 新纪元;2023+

浩瀚之水的专栏 978

shell脚本中/bin/bash的作用,引号与括号的使用

shell脚本通常第一句是#!/bin/bash,在很多情况中,如果没有设置好这一行,那么该程序很可能无法执行,因为系统无法判断该程序需要使用什么shell来执行 通俗点讲,#!/bin/bash:是指此脚本使用/bin/bash来解释执行。其中,#!是一个特殊的表示符,后面紧跟着解释此脚本的shell路径。bash只是shell的一种,还有很多其它shell,比如:sh,csh,ksh,tcsh等等。 Linux Shell中有三种引号,分别为双引号(" ")、单引号(' ')以及反引号(` `).

fhb1922702569的博客 2811

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

shell脚本变量及使用

定义变量: my_var=“Hello, world!引用变量: echo $my_var只读变量: readonly my_var删除变量: unset my_var使用花括号: 使用花括号 {} 可以帮助区分变量的边界,特别是在变量名后面有其他字符的情况下。基本用法/bin/bashread nameAlice存储到数组中这会等待用户输入一组数字,每个数字以空格分隔,并将它们存储到 numbers 数组中。指定分隔符。

qq_41938541的博客 3528

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Shell脚本中获取命令运行结果、特殊变量使用、条件判断等常用操作

最近在处理一个 `Python` 局部变量的作用域问题时发现有些奇怪,想起了之前常写的 `Lua` 脚本,于是想写个函数测试一下,结果发现短短的十几行代码出现了多个错误,这可是我写了近三年的代码啊,才放下半年就记不清了,所以知识这个东西还是要不断“温故”,今天要总结的 `Shell` 脚本命令也是,基本属于一看就会,一写不对的状态,所以还是要把常用的操作总结到一起,方便查找和复习...

AlbertS Home of Technology 7万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Shell脚本精读 · S09-03 | 子 Shell 与命令替换:`()` 与 `$()`

摘要: 本文介绍Bash中命令替换$(cmd)和子shell(cmd)的核心用法及常见误区。命令替换将命令输出作为文本插入命令行,需注意引号包裹防拆词、尾部换行去除等问题;子Shell在独立进程中执行命令,变量修改不影响父Shell。关键区分$( )(命令替换)、$(( ))(算术)、( )(子Shell)和{ }(命令组)的用途,并通过SCRIPT_DIR等经典模式解析子Shell环境特性。强调引号重要性及set -e下退出码处理,提供脚本检查清单避免常见错误。

xiaohaha123258的博客 407

Linux 单双引号区别

本文介绍了Linux中单引号(强引号)和双引号(弱引号)的主要区别:1)双引号能展开变量而单引号不能;2)双引号能展开命令(使用反引号或$())而单引号原样输出;3)引号嵌套时外层引号决定是否展开内容;4)双引号中可使用反斜杠转义特殊字符(如$)。这些特性在使用shell脚本处理字符串时需特别注意。

你的指尖有改变世界的力量 1557

Shell 脚本常用命令

Shell脚本是Linux开发工作中常用的工具,但是我一直没有找到一个适合自己的简明扼要的HandBook。在工作过程中整理了一下,贴在这里已备查看。 1 Shell中的特殊符号 1.1 $ 美元符号。用来表示变量的值。如变量NAME的值为Mike,则使用$NAME就可以得到“Mike”这个值。 1.2 # 井号。除了做为超...

老猫的博客 2万+

Shell脚本基础:变量使用

在 Shell 脚本中,变量是用来存储数据的标识符,可以保存字符串、数字或命令输出的结果。变量的定义非常简单,通过等号()将值赋给变量名。语法结构变量定义的格式为变量名=值,等号两侧不能有空格。例如,会导致语法错误,正确的写法是。值可以是字符串、数字或命令的输出。例如,count=42定义一个数字变量,存储命令的输出。动态类型Shell 中的变量是动态类型的,无需显式声明变量的类型。Shell 会根据赋值的内容自动推断。例如,age=27被视为整数,而被视为字符串。变量的类型可以随时改变。例如,

vortex5的博客 2658

shell脚本中/bin/bash的作用引号与括号的使用小结

bin/bash: 是指此脚本使用/bin/bash来解释执行。bash只是shell的一种,还有很多其它shell,比如:sh/csh/ksh/tcsh等等。单引号不进行替换,将字符串中所有字符作为普通字符输出,而反引号中字符串作为shell命令执行,并返回执行结果。/bin/bash,在很多情况中,如果没有设置好这一行,那么该程序很可能无法执行,因为系统无法判断该程序需要使用什么shell来执行。此外,$() 仅在 Bash Shell 中有效,而反引号可在多种 Shell 中使用。

sre救赎之路 511

shell中引号区别

初识shell,其中的引号的作用总能把我绕晕,于是去查了下资料来总结一下 双引号" ":会把引号的内容当成整体来看待,允许通过$符号引用其他变量值 单引号' ':会把引号的内容当成整体来看待,禁止引用其他变量值,shell中的特殊符号都被视为普通字符 反撇号` `:反撇号和$()一样,引号或括号里的命令会优先执行,如果存在嵌套,反撇号不能用

Stevelu的技术博客 1013

Linux 中 shell 中反引号与 $() 的对比

这两者都是命令替换,命令替换是指:是Shell 执行命令并将命令替换部分替换为执行该命令后的结果。比如:[bob@centos home]$ val=hello [bob@centos home]$ echo $(echo $val) val [bob@centos home]$ echo `echo $val` val或者:[bob@centos home]$ echo $(date) 2017年

春风来不来的博客 1837

shell脚本变量

变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据。脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell变量也遵循这个规则。在Bash shell 中,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。这意味着,Bash shell 在默认情况下不会区分变量类型,即使你将整数和小数赋值给变量,它们也会被视为字符串,这一点和大部分的编程语言不同。如C/C++ ,变量分为整数、浮点数、字符串、布尔等多种类型。

TTSuzuka的博客 1844

Linux shell脚本之 if条件判断

shell基本语法 shell中将命令结果赋值给变量 var=`command` var=$(command) # 推荐是用这种方式,支撑嵌套 shell 脚本中变量的数学计算 shell声明变量类型 declare -i x x=1+1 echo $x SHELL脚本获取自身所在路径和名字 #!/bin/bash BaseName=$(basename $BASH_SO...

yongwan5637的博客 2万+

shell脚本

Shell脚本是Linux开发工作中常用的工具,但是我一直没有找到一个适合自己的简明扼要的HandBook。在工作过程中整理了一下,贴在这里已备查看。 1 Shell中的特殊符号 1.1 $ 美元符号。用来表示变量的值。如变量NAME的值为Mike,则使用$NAME就可以得到“Mike”这个值。 1.2 # 井号。除了做为超级用户的提示...

shenjiyang的博客 139
上一篇: 正则表达式中的通配符
下一篇: ubuntu的默认提示符颜色配置
辛金保
博客等级 码龄6年 48粉丝 13原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值