linux - 了解何时在 bash 脚本中使用空格

标签 linux bash unix

我想运行一个简单的 bash 计时器并找到了这个 online (用户 brent7890)

#!/usr/bin/bash
timer=60
until [ "$timer" = 0 ]
do
clear
echo "$timer"
timer=`expr $timer - 1`
sleep 1
done
echo "-------Time to go home--------"

我无法复制和粘贴此代码,因为服务器位于另一个网络上。我是这样输入的(如下),但在以“until”开头的行中出现错误。

#!/usr/bin/bash
timer=60

#Note I forgot the space between [ and "
until ["$timer" = 0 ]

do
clear
echo "$timer"
timer=`expr $timer - 1`
sleep 1
done
echo "-------Time to go home--------"

这样的间距在哪里记录?这很重要,这似乎很奇怪。 Bash 脚本可能会令人困惑,我想了解为什么空格很重要。

最佳答案

有几个规则,其中两个基本规则是:

  • 您必须用空格分隔命令的所有参数。
  • 您必须用空格分隔命令和后面的参数。

[ 这里是一个命令(test)。

如果你写["$timer" 那意味着你启动命令[60, 那当然是不正确的。命令的名称是 [

命令的名称始终与命令行的其余部分用空格分隔。 (你可以有一个带空格的命令,但在这种情况下,你必须在 ""'' 中写下命令的名称)。

关于linux - 了解何时在 bash 脚本中使用空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21020659/

相关文章:

r - 从一台 Linux 服务器复制旧的 R 包并将它们安装在新服务器上

java - 无法使用 docsplit 转换 openoffice 文档导致 java.lang.NoClassDefFoundError

php - 在linux命令行上使用python(未运行)编译字符串

bash - 为什么 grep\n 匹配每一行

linux - 将 Git 添加到/bin/bash

linux - 迭代创建图形

计算读取操作返回的字节数

regex - Bash 脚本 : Append parent directories to filenames

css - 为什么 Linux 上的 Chrome 显示错误的字体粗细?

linux - 在我的命令行中运行 vi 后发生了一些奇怪的事情