首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【shell脚本】$ 在shell脚本中的使用

shell脚本中 '$' 与不同的符号搭配其表示的意义也会不同 特殊标志符 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。...例如,第一个参数是$1,第二个参数是$2 $# 传递给脚本或函数的参数个数 $* 传递给脚本或函数的所有参数 $@ 传递给脚本或函数的所有参数 $?...上个命令的退出状态 $$ 当前Shell进程ID $() 与 `(反引号) 一样用来命令替换使用 ${} 引用变量划分出边界 注释:$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" "...但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数

6.2K20

在 Shell 脚本中调用另一个 Shell 脚本的三种方式

被调用的脚本与父脚本在同一个 Shell 内执行。但是使用 exec 调用一个新脚本以后, 父脚本中 exec 行之后的内容就不会再执行了。...这是 exec 和 source 的区别. source 与 fork 的区别是不新开一个子 Shell 来执行被调用的脚本,而是在同一个 Shell 中执行....所以被调用的脚本中声明的变量和环境变量, 都可以在主脚本中进行获取和使用。 其实从命名上可以感知到其中的细微区别,下面通过两个脚本来体会三种调用方式的不同: 第一个脚本,我们命名为 1.sh: #!...exec 在同一个 Shell 内执行,但是父脚本中 exec 行之后的内容就不会再执行了 source 在同一个 Shell 中执行,在被调用的脚本中声明的变量和环境变量, 都可以在主脚本中进行获取和使用...参考: 在shell脚本中调用另一个脚本的三种不同方法(fork, exec, source)

4.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Shell-alias在Shell脚本中的使用

    概述 在shell中开启alias 实际操作 概述 众所周知,shell脚本使用的是非交互式方式,在非交互式模式下alias扩展功能默认是关闭的,此时虽然可以定义alias别名,但是shell不会将alias...---- 在shell中开启alias 使用shell内置命令shopt命令来开启alias扩展选项。...shopt是shell的内置命令,可以控制shell功能选项的开启和关闭,从而控制shell的行为 常用命令: Command Desc shopt -s opt_name Enable (set) opt_name...(交互模式下) [/xgj/gj]$shopt expand_aliases expand_aliases on shopt expand_aliases在交互式模式下 默认是打开的,在非交互式模式下是关闭的...,但可以用可shopt来将其开启 shopt -s expand_aliases ---- 实际操作 在我们的项目中某个模块的双机启动脚本(root用户下操作),其中应用的启停使用了alias建立的同义词来操作

    2.3K10

    在Git和GitHub中如何使用分支

    您使用 git 创建项目不同版本的进度时间线,以便在出现问题时可以回滚到早期版本。 git 和 GitHub 管理此时间线的方式(尤其是在多人协作并进行更改时)是使用分支。...在创建新的分支之前,我们要检查是否存在其他现有分支。我们知道主分支,但谁知道我们的项目合作者在做什么,那些淘气的猴子?...这样,我们就可以在本地(在我们自己的开发环境中)对项目进行修改和更改,而项目的原始版本 main 仍然安全地保存在 GitHub 上。我们给新分支一个描述性的名称,以提醒我们打算在其中进行什么操作。...没什么大不了的,只需使用 git checkout -b 再次使用新的名称变体)。 我们还可以使用 git checkout 命令在两个分支之间来回切换。...到目前为止,我们一直在使用一个极其简化的示例项目,因为此时最重要的是理解和吸收 git 工作流程。在现实世界中,合并比这要复杂得多 - 例如,如果您的合并出现冲突,会发生什么?

    16710

    数组-在Shell脚本中的基本使用介绍

    Shell脚本在运维工作中是极其重要的,而数组在shell脚本里的运用无论是在循环或运算方面都是非常实用的一个环节。...下面是对shell脚本中数组方面一些操作在此进行记录,希望能帮助到有兴趣的朋友~ 1.数组定义 [root@bastion-IDC ~]# a=(1 2 3 4 5 6 7 8) [root@bastion-IDC...,如果下标不存在,自动添加新一个数组元素 4)删除: [root@bastion-IDC ~]# a=(1 2 3 4 5 6 7 8) [root@bastion-IDC ~]# unset a [root...3.特殊使用 1)分片: [root@bastion-IDC ~]# a=(1 2 3 4 5 6 7 8) [root@bastion-IDC ~]# echo ${a[@]:0:3} 1 2 3 [...echo ${c[*]} 2 3 4 5 直接通过 ${数组名[@或*]:起始位置:长度} 切片原先数组,返回是字符串,中间用“空格”分开,因此如果加上”()”,将得到切片数组,上面例子:c 就是一个新数据

    4K100

    如何使用notionterm在Notion页面中嵌入反向Shell

    关于notionterm  notionterm是一款功能强大的反向Shell嵌入工具,在该工具的帮助下,广大研究人员可以轻松向一个Notion页面中嵌入反向Shell。  ...工具特性  1、可以在反向Shell中隐藏我们的IP地址(研究人员和目标计算机之间没有进行直接交互,Notion将作为代理来托管反向Shell); 2、支持在报告中插入演示和PoC; 3、高可用性和可共享的反向...Shell(桌面、浏览器、手机); 4、支持加密Shell和带有身份验证功能的远程Shell;  工具要求  Notion软件和API密钥; 允许目标设备通过HTTP通信连接与Notion域名交互; 在目标设备上能够实现远程代码执行...出于安全因素考虑,大家请不要随意分享代码,并且使用后记得删除。...ID的URL嵌入进去,并开启一个Shell会话: https://[TARGET_URL]/notionterm?

    1.2K11

    Java 使用Runtime在一个Java程序中启动和关闭另一个Java程序

    主要使用了 Runtime.getRuntime().exec(new String[]{"/bin/bash", "-c", cmd}); 调用shell命令的工具类: public static...BufferedReader bufrIn = null; BufferedReader bufrError = null; try { // 执行命令, 返回一个子进程对象...(命令在子进程中执行)使用这种方式可以使用|管道符命令 process = Runtime.getRuntime().exec(new String[]{"/bin/bash",...} return result.toString(); } 当有jar包上传到接口时,调用这个方法,停止正在运行的jar,并启动新jar JAR_NAME校验自定,这里固定使用一个...System.getProperty("java.home") 来获取到执行当前程序的Java路径,再把jre目录替换为jdk目录,使用jdk目录下bin目录中的java及jps命令,可以达到需求 另外需要注意命令字符串中的空格很重要

    2.4K51

    在 linux 中我安装了一个命令行,是否所有用户都可以使用这个命令,比如 docker?

    分享一个 linux 技能飞书话题群的一个问题。 ---- 问: 在linux系统里,普通用户目录是在 /home 下,root用户目录在 /root,因此全部用户共享目录的。...---- 答: 不一定,当我们说我们在 linux 装了一个东西,指的是:「我们装了一个命令,可全局执行」。此时是将该命令放在了全局执行目录(或者将该命令目录放在了 $PATH)。...而全局执行目录是 $PATH 环境变量,默认有以下路径(当然可以自己再添加) /home/shanyue/.local/bin /home/shanyue/bin /usr/local/bin /usr...哦对,PATH 该路径列表可自定义,而每一个用户都可以有独立的 PATH 环境变量。...所以,要看一个命令是所有用户共享还是仅对当前用户有效,具体要看该命令是怎么装的,可以看看 which command 进一步排查。

    7.4K60

    Git知识总览(五) Git中的merge、rebase、cherry-pick以及交互式rebase

    实现下方目标和上面的merge操作差不多,只不过最后一步不是使用合并操作,而是在bugFix上执行变基操作,具体分析如下: 首先需要做的就是创建一个新的分支bugFix, 并切换到该分支上,然后进行一次...从下方的目标中我们可以看出 local 分支的撤销操作是使用的 git reset 操作的, 因为是在本地来向上移动的,进行reset后是不可以push到远端的。...下方主要还是使用了cherry-pick来达到我们的目标的,主要还是一个命令的使用 , 在 master 分支上执行 git cherry-pick C3 C4 C7, 可以将C3 C4 C7这三个提交摘到...现在要做的是在bugFix上进行交互式rebase, 在终端中输入 git rebase -i master, 目的是将 bugFix 分支上的提交通过交互式rebase的方式将其变基到master分支上...5、交互式rebase的另一个示例 接下来我们来看一下另一个交互式rebase的示例,完成下方的目标,我们需要做下方几步: 首先我们通过交互式rebase将caption变基到master分支上,在变基操作时交换

    12.4K61

    git 那些事儿 —— 基于 Learn Git Branching

    bugFix 在 git 中合并两个分支时会产生一个特殊的提交记录,它有两个父节点。...一个合并提交有两个父提交,所以遇到这样的节点时该选择哪条路径就不是很清晰了。git 默认选择合并提交的“第一个”父提交,在操作符 ^ 后跟一个数字可以改变这一默认行为。...当你克隆时,git 会为远程仓库中的每个分支在本地仓库中创建一个远程分支 (比如 origin/master)。...然后再创建一个跟踪远程仓库中活动分支的本地分支,默认情况下这个本地分支会被命名为 master。克隆完成后,你会得到一个本地分支,但是可以查看远程仓库中所有的分支。...这里可以举一个实际的例子,大一点的公司都有自建的代码库系统,可以设置代码库是否允许开发者直接提交代码,一般设置为否,需要提交到一个特殊的分支,经过同行评审后再合入到正式分支: git push origin

    2K20

    软件测试|Pycharm版本控制与分支管理

    版本控制最主要的功能就是记录一个或若干个文件内容变化 ,以便将来查阅特定版本内容,并且记录文件的所有历史变化,随时可恢复到任何一个历史状态。除了记录版本变更外,版本控制的另一个重要功能是并行开发。...```brew list git```图片 图中框着的为git的路径1.4 配置环境变量# 从 macOS Catalina 版系统开始,mac使用zsh作为默认shell,如果使用的是bash,要修改的是...Mac Pycharm配置git可以使用pycharm的默认git配置,如果需要额外配置可以选择菜单“PyCharm”->“Preferences”->“Version Control”->“Git”...单分支存在的问题代码中至少有一个分支,就是主干分支或称主分支Master,默认都是在主分支上开发图片上图图中绿色节点表示每一个提交commit图片项目往往是并行多人开发的,都在主分支上克隆,然后修改提交...多分支创建和使用进行多分支管理时,我们需要坚持下列原则分支名必须唯一不能以 _ 开头可以使用 / 但是不能以它结尾,被它分割的名称不能以 .

    1.5K10

    你是如何玩Git分支模型的呢?

    功能分支通常存在于开发者的软件库,而不是在源代码库中。创建一个功能分支开始一项功能的开发工作时,基于develop创建分支。...这里,bump-version.sh 是一个虚构的shell脚本,它可以复制一些文件来反映新的版本(这当然可以手动改变--目的就是修改一些文件)。然后版本号被提交。...当生成环境验证缺陷必须马上修复是,热修复分支可以基于master分支上对应与线上版本的tag创建。其本质是团队成员(在develop分支上)的工作可以继续,而另一个人准备生产环境的快速修复。...hotfix分支完成一个bugfix之后,需要把butfix合并到master和develop分支去,这样就可以保证修复的这个bug也包含到下一个发行版中。...(Summary of changes) $ git tag -a 1.2.1 编辑:你可能也会想使用 -sor-u 参数来对你的tag进行加密 下一步,把bugfix添加到develop分支中

    50820

    Git 快速入门:全面了解与安装步骤

    Git Submodules:支持将一个 Git 仓库嵌套到另一个 Git 仓库中,适用于多仓库管理。Git Flow:一种流行的 Git 工作流,特别适用于团队开发和发布管理。...这使得 Git 在处理大文件和复杂项目时更加高效。分支管理:Git 的分支功能非常强大且灵活,可以轻松创建、合并和删除分支。这对于尝试新想法、修复bug或是开发新特性非常有用。...提交和推送代码:可以通过简单的点击提交更改并推送到远程仓库。分支管理:可以方便地创建、切换、合并分支等。查看日志:查看提交历史和相关详细信息。...它是基于 Bash(一个常见的 Unix shell)环境的,提供了一个命令行界面,用户可以通过输入命令来与 Git 进行交互。特点:命令行界面:用户通过输入 Git 命令来进行版本控制操作。...跨平台开发:在 Windows 上,Git Bash 为开发者提供了一个类 Unix 环境,适合那些在跨平台开发中需要一致性体验的用户。

    43410
    领券