zoukankan      html  css  js  c++  java
  • shell 将变量当命令执行问题【多条命令同时执行问题】

    shell将变量当命令执行问题【多条命令同时执行问题】

    今天写了个shell脚本,脚本中需要将变量当做shell命令运行,通常的方法有多种,比如:

    `${var}` 将变量内容当shell命令行执行

    $(${var}) 将变量内容当shell命令执行

    ${var}将变量内容当shell命令执行【不推荐此种方法】

    但是这3种方法只能运行单条命令,当命令是下面类型时就会有问题:

    VAR1='cd /home ;echo "hello";echo "good"'

    VAR2='cd /home && echo "hello" && echo "good"'

    此时执行

    $(${VAR1}) 就会发现没有输出,通过跟踪命令执行过程发现shell自动将 ; && 使用''进行了限制,为了解决这个问题查了很多资料,没有好的解决方法,

    通常我们的crontab 命令会有此种写法,而且执行没有问题,通过查看crontab的资料,发现使用的system函数,所以最后使用awk的system函数解决问题。

    解决方法:

    VAR1='cd /home ;echo "hello";echo "good"'

    VAR2='cd /home && echo "hello" && echo "good"'

    echo ${VAR1}|awk '{run=$0;system(run)}'

    echo ${VAR2}|awk '{run=$0;system(run)}'

    执行结果正确

       hello

       good

       hello

       good

  • 相关阅读:
    webstorm破解
    macos-WebStorm安裝
    CocoaPods安装与使用
    前端之HTML
    python调用百度语音(语音识别-斗地主语音记牌器)
    MySQL学习笔记(二)
    MySQL学习笔记(一)
    python网络编程
    计算机网络基础
    python之hashlib、configparser、logging模块
  • 原文地址:https://www.cnblogs.com/lidabo/p/13936040.html
Copyright © 2011-2022 走看看