如果您在Ubuntu 12.04上运行以下bash脚本:

t="t"
echo "1st Output this $15"
echo "2nd this $test"

输出是:

1st Output this 5
2nd this

第一个echo如何将$1作为变量名称(非贪婪)将其解释为${1}5而第二个echo$test作为变量名称(贪婪)而不是将其解释为${t}est $test

===============>>#1 票数:3

您的问题分为两部分:

  • $15总是被解释为$1 ,即第一个位置参数1 ,与5连接。 为了使用第十五个位置参数,你需要说${15}

  • $test将被解释为变量test 因此,如果您希望它被解释为$test连接,那么您需要说${t}est

1info bash引用:

   When  a  positional parameter consisting of more than a single digit is
   expanded, it must be enclosed in braces (see EXPANSION below).

   ...

EXPANSION
   Expansion is performed on the command line after it has been split into
   words.  There are seven kinds of expansion performed: brace  expansion,
   tilde  expansion,  parameter  and variable expansion, command substitu‐
   tion, arithmetic expansion, word splitting, and pathname expansion.

您可能还想参考:

  ask by James King translate from so

未解决问题?本站智能推荐:

4回复

Linux命令检索所需的行

我有以下格式的数据(存储在file1.txt中): 现在使用grep,我想检索出现“ http:// stackoverflow ”的行作为第一个字符串,即,如果我在空格处分割行,则http:// stackoverflow应该是第一个字符串。 基于此,我的输出应为: 是否
2回复

什么意味着Linux脚本中的if表达式中的-z值?

在这个脚本中,我发现这个if表达式: 我的问题是我无法找到这个-z值的确切含义。 从echo的内容我可以推断出(可能) $1变量代表sotware版本。 那个(也许) -z是一个空值。 因此,如果我执行脚本而不传递给它,我将打包它的软件版本打印我执行脚本的正确程序。 但我
2回复

意外令牌附近的Ubuntu BASH语法错误

我正在按照本教程http://ubuntuforums.org/showthread.php?t=1550470安装用于Phorinix测试套件的GUI并将其安装在Ubuntu 12.04上。 我已经安装了测试套件和PHP5,它们在终端中都可以正常运行,但是我现在正在尝试创建GUI。 运
1回复

在bash shell中追加运算符

运行包含以下命令的bash shell脚本时: 输出会多次显示在控制台上,而不是附加到输出文件中。 有什么解决办法吗? 我做错什么了吗? 我正在使用Ubuntu 12.04
1回复

Bash shell脚本:如何退出并重启脚本?

我使用shell脚本来配置我的服务器。 修改.bashrc文件后,我需要退出然后重新登录以重新启动shell。 更新: 这是vagrant将运行的shell脚本文件。 这是我得到的输出。 仍然没有找到命令。
1回复

Docker:bash终端启动时没有提示

我有一个简单的容器,如下所示: 其中devbox / rails3.2.1是我创建的以'FROM ubuntu'开头并安装Ruby on Rails的容器。 这是使用Ubuntu 12.04.3 LTS在Vagrant Virtual Box VM中运行的。 当我使用以下方式运行时:
4回复

Linux作业系统(Ubuntu)

我在终端上捆绑了sudo apt-get install gparted命令,但它无法正常工作并显示此错误。 可能是什么问题呢?
1回复

安装linux-headers-2.6.32-042stab085.20

我正在尝试在具有Ubuntu 12.04和内核版本的VPS主机上安装virtualbox-4.3: 当我尝试安装它时,出现以下错误: 我知道内核很旧,但是我真的无法更新它,是否有办法安装此内核版本的标头? Edit1:我在/ lib / modules / $(uname
1回复

在我的系统上安装另一个版本的linux

我需要在本地构建“精确” Ubuntu版本的驱动程序(该系统的uname -r返回3.2.0-33-generic-pae )。 我的本地主机是Ubuntu 13.10'sausy' 。 但是我无法安装linux头文件(应该如何设置所需的环境?) 我是从以下位置下载图像的: p
1回复

桌面Linux发行版中.desktop文件的功能是什么?

我有以下情况:我必须修改一个.desktop文件,该文件位于我正在使用的应用程序的包中。 当我尝试打开文件的内容时,我遇到了一个奇怪的问题。 如果我点击它然后我尝试点击“打开”它给我一个错误信息,这意味着英语: “应用程序发布者不可靠” 打开.desktop文件的唯一方法是运行以下