`
silentlakeside
  • 浏览: 109071 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

BASH - 以变量的形式执行shell命令

 
阅读更多

有时候需要执行组装的命令或者外部(例如文件)定义的命令,需将这些命令定义为一个变量,然后执行。

直接执行

cmd="ls -l"
$cmd
 但这种方式不适用于多个命令或者一些复杂的命令,例如
cmd="ls -l > a.log 2>&1"
$cmd

cmd="cd; ls -l"
$cmd
 会报如下错误(a.log存在)
ls: >: No such file or directory
ls: 2>&1: No such file or directory
-rw-r--r-- 1 v504613 acsot 641 Feb  6 16:36 a.log
./a.sh: line 10: cd;: command not found

使用eval

cmd="ls -l"
eval $cmd

cmd="ls -l > a.log 2>&1"
eval $cmd

cmd="cd; ls -l"
eval $cmd
分享到:
评论

相关推荐

    linux-Shell基础视频教程

    10.3.4 Shell基础-Bash基本功能-多命令顺序执行与管道符.mp4 10.3.5 Shell基础-Bash基本功能-通配符和其他特殊符号.mp4 10.4.1 Shell基础-Bash变量-用户自定义变量.mp4 10.4.2 Shell基础-Bash变量-环境变量.mp4 ...

    bash-4.4版本升级手册带安装包

    在旧版本中,特别是低版本的Bash,存在一个名为“Shellshock”的安全漏洞,这个漏洞允许攻击者通过精心构造的环境变量来执行任意代码,对系统安全构成威胁。因此,及时升级到Bash 4.4或更高版本是非常必要的。 ### ...

    Linux CentOS下shell显示-bash-4.1$不显示用户名路径.docx

    source 命令用来读取并执行指定文件中的命令,在这里我们使用它来读取 .bash_profile 文件中的配置信息。 总结 通过配置 .bash_profile 文件,可以解决 Linux CentOS 下 shell 显示-bash-4.1$ 不显示用户名路径的...

    解决ssh远程登陆linux显示-bash-4.1$的问题

    cp -pr /etc/skel/.bash* /home/test/ ... 您可能感兴趣的文章:浅谈linux中shell变量$#,$@,$0,$1,$2的含义解释php $_SERVER windows系统与linux系统下的区别说明linux让$变成#符号的实操方法linux中$符号的基础用法教程

    bash-4.1.2-15

    Bash 是 Bourne-Again SHell 的缩写,它是 GNU 工程的一部分,为用户提供了一个交互式环境来执行命令、脚本和程序。这个版本号 "4.1.2-15" 表示该软件的迭代更新,通常包括错误修复、性能改进和新功能。 描述中没有...

    bash-4.0 源码

    首先,bash-4.0包含了实现各种Shell特性的代码,如命令历史记录、别名、函数、环境变量管理、作业控制以及shell脚本的解析和执行。这些特性使得bash不仅仅是一个命令行接口,而是一个功能强大的编程环境。 1. **...

    bash-4.3.27 for solaris

    2. 【漏洞简介】该漏洞源于你调用的bash shell之前创建的特殊的环境变量,这些变量可以包含代码,同时会被bash执行。 黑客可以远程执行命令,窃取服务器上的信息,并进一步控制服务器。 3. 【影响系统】 所有安装GNU...

    bash-5.2的源代码,纯C的shell

    C语言的特性使得Bash能够高效地执行命令,同时保持与其他系统组件的紧密集成。 在源代码中,我们可以看到以下几个重要的组成部分: 1. **解析器(Parser)**:这部分代码负责将用户输入的命令行字符串转换为内部...

    bash-debuginfo-3.2-33.el5_11.4.x86_64

    在Linux环境中,Bash(Bourne-Again SHell)是默认的命令行解释器,用于处理用户输入的命令和脚本执行。Bash-debuginfo包是Bash的主要软件包的补充,它包含了一些特殊的符号和元数据,这些信息对于开发人员和系统...

    bash-3.2-33.el5_11.4.x86_64

    Bash是GNU项目的一部分,是Linux和Unix系统上广泛使用的命令解释器,即我们常说的Shell。这里的版本号3.2表明这是Bash 3.2系列的一个更新,而后面的33可能是修订版本号,el5_11.4可能代表它适用于Red Hat Enterprise...

    bash-handbook-zh-CN, 一种中文中文翻译.zip

    bash-handbook-zh-CN, 一种中文中文翻译 bash-handbook-zh-CN前言Shells与模式交互模式非交互模式返回值注释变量局部变量环境变量位置参数Shell扩展大括号扩展命令置换算数扩展单引号和双引号数组数

    bash笔记-02-变量.doc

    - 如果变量值中包含空格,则需要用双引号(`"`)括起来,以避免bash将其误认为是多个命令。 - 另一种定义变量的方法是使用`read`命令,例如: ```bash read great echo $great ``` 这种方式即使变量值中有空格也...

    Advanced Bash-Scripting Guide(pdf)

    这本书详细介绍Bash shell脚本的语法、常用命令和开发技巧。书中包含大量实例,经过众多高手修正,是学习Bash脚本的必读书籍。 首先,Bash脚本是一种在Unix和类Unix操作系统上广泛使用的脚本语言。它基于shell编程...

    Linux-Bash-Shell快速入门

    Linux Bash Shell是一种广泛应用于Linux和Unix系统上的命令行解释器,也称为Shell脚本编程。它提供了一个用户友好的环境,使用户能够通过键盘输入一系列的命令来控制计算机。本文将详细介绍Linux Bash Shell的基本...

    Advanced Bash-Scripting Guide 中英版及源码

    Bash Shell脚本语言拥有丰富的功能和灵活性,包括变量、控制结构、函数、输入/输出重定向、管道等。通过学习《Advanced Bash-Scripting Guide》,你可以掌握以下关键知识点: 1. **基础语法**:了解如何定义变量,...

    高级Bash脚本编程指南(Advanced Bash-Scripting Guide)中英文版本

    **ABS(Advanced Bash-Scripting Guide)指南详细介绍了Bash shell的各种特性,包括变量、控制结构、函数、输入/输出重定向、条件测试、正则表达式等核心概念。** 1. **变量**:在Bash脚本中,变量用于存储数据,...

    bash-yaml:读取yaml文件并在bash中创建变量

    `bash-yaml`是一个轻量级的Bash函数库,允许我们读取YAML文件并将其内容映射到Bash变量。 安装`bash-yaml`通常涉及克隆其GitHub仓库,例如`bash-yaml-master`,然后将库中的函数引入Bash脚本。要克隆仓库,可以使用...

    Ebook - Linux-Unix-Shells, Bourne-Shell, Korn-Shell, C-Shell, Bash, Tcsh.pdf

    根据提供的文件信息,本书《LINUX-UNIX-Shells》是一本详细介绍各种Unix/Linux下的Shell环境的书籍,包括了Bourne Shell、Korn Shell、C Shell、Bash以及Tcsh等主流Shell类型。该书由Helmut Herold编写,并且已经是...

    bash-3.2-33.el5_11.4的32和64对于el4和el5的bash漏洞修复

    标题中的“bash-3.2-33.el5_11.4的32和64对于el4和el5的bash漏洞修复”涉及到的是Linux操作系统中的Bash shell( Bourne-Again SHell)的一个安全更新,特别是针对版本3.2-33.el5_11.4的32位和64位版本。这个修复是...

    Bash-Beginners-Guide

    - **从脚本执行**:讲解如何通过脚本执行命令或程序。 - **构建模块** - **Shell构建块**:介绍Shell脚本的基本组成元素,如变量、条件语句等。 - **开发高质量脚本** - **优秀脚本的特点**:可读性、可维护性、...

Global site tag (gtag.js) - Google Analytics