当前位置: 首页 > 面试题库 >

防止*在bash脚本中扩展

洪昱
2023-03-14
问题内容

Linux bash脚本:

#!/bin/bash

function Print()
{
    echo $1
}

var="*"
Print $var

执行结果:

alex@alex-linux:~/tmp$ ./sample-script 
sample-script

*扩展到文件列表,它实际上是脚本本身。如何防止这种情况并查看实际变量值?在一般情况下,var可能会比复杂*,例如:home/alex/mydir/*


问题答案:

您还需要转义变量:

Print "$var"

并在您的职能:

echo "$1"


 类似资料:
  • 问题内容: 我正在用geb进行功能测试。 我的应用程序是使用virgo部署的,并使用HSQLDB来存储数据。我想在此工作版本的应用程序上执行测试,但是每次运行webtests时,我都想从空数据库开始。 我写了一个简单的bash脚本 这将删除数据库并重新启动处女座。 但是,当我将其添加到build.gradle任务执行命令时,它永远不会结束。 为什么这样呢?当我在控制台中运行此脚本时,它会迅速返回(

  • 问题内容: 我创建了一个非常简单的bash脚本,该脚本运行一些命令。这些命令之一在运行时需要用户输入。即它询问用户“您想等等吗?”,我只想向其发送回车按键,以便脚本将完全自动化。 我将不必在运行时等待输入或其他任何东西,它足以发送按键,输入缓冲区将处理其余部分。 问题答案: 或利用echo生成的隐式换行符(感谢Marcin) 现在我们可以简单地使用以下选项: ,请勿在每次测试后等待按键 即

  • 问题内容: 我想在Bash脚本中引发错误,显示消息“测试用例失败!!”。如何在Bash中做到这一点? 例如: 问题答案: 这取决于您要将错误消息存储在何处。 您可以执行以下操作: 或以下内容: 引发异常时,将停止程序的执行。 您还可以使用类似“ 哪里是您可能要返回到操作系统的错误代码”(从0到255)的方法。在这里,只是可以退出的随机代码。当您需要向OS指示程序异常停止(例如发生错误)时,您需要将

  • 问题内容: 我想执行以下操作,逐行读取文件并将每行的值用作参数 但是当我执行echo $ CMD时,它只返回cat:S 问题答案: 您所拥有的就是将文本传递到循环中。 您只想要:

  • 问题内容: 我想从下面的程序中运行一个shell脚本,但它似乎无能为力。我已经直接在linux终端中运行了相同的命令,它运行正常,所以我猜这是我的Java代码。如您所见,我首先使用PrintWriter将命令写入Shell脚本,但我希望这不会影响Shell脚本本身的运行。任何帮助,将不胜感激! 问题答案: 您应该使用返回的结果。 将命令作为单独的进程执行,并返回类型为的对象。您应该调用以便程序等待

  • 我想在Bash脚本中引发一个错误,消息为“测试用例失败!!!”。如何在Bash中做到这一点? 例如: