相关疑难解决方法(0)

如何迭代Bash中变量定义的一系列数字?

当变量给出范围时,如何在Bash中迭代一系列数字?

我知道我可以这样做(在Bash 文档中称为"序列表达式" ):

 for i in {1..5}; do echo $i; done
Run Code Online (Sandbox Code Playgroud)

这使:

1
2
3
4
5

但是,如何用变量替换任何一个范围端点?这不起作用:

END=5
for i in {1..$END}; do echo $i; done
Run Code Online (Sandbox Code Playgroud)

哪个印刷品:

{} 1..5

syntax bash shell for-loop

1409
推荐指数
18
解决办法
102万
查看次数

sh和bash之间的区别

在编写shell程序时,我们经常使用/bin/sh/bin/bash.我经常使用bash,但我不知道它们之间有什么区别.

bash和之间的主要区别是sh什么?

我们究竟需要意识到在编程时bashsh

unix bash shell sh

1194
推荐指数
11
解决办法
46万
查看次数

什么是$?shell脚本中的(美元问号)变量?

我正在尝试学习shell脚本,我需要了解其他人的代码.什么是$?变量保持?我不能谷歌搜索答案,因为他们阻止标点字符.

shell scripting

238
推荐指数
7
解决办法
13万
查看次数

在Bash中测试非零长度字符串:[ - n"$ var"]或["$ var"]

我已经看到bash脚本以两种不同的方式测试非零长度字符串.大多数脚本使用-n选项:

#!/bin/bash
# With the -n option
if [ -n "$var" ]; then
  # Do something when var is non-zero length
fi
Run Code Online (Sandbox Code Playgroud)

但是-n选项并不是真正需要的:

# Without the -n option
if [ "$var" ]; then
  # Do something when var is non-zero length
fi
Run Code Online (Sandbox Code Playgroud)

哪种方式更好?

同样,这是测试零长度的更好方法:

if [ -z "$var" ]; then
  # Do something when var is zero-length
fi
Run Code Online (Sandbox Code Playgroud)

要么

if [ ! "$var" ]; then
  # Do something when var is zero-length
fi
Run Code Online (Sandbox Code Playgroud)

syntax bash shell if-statement

160
推荐指数
4
解决办法
12万
查看次数

150
推荐指数
5
解决办法
15万
查看次数

在Bash中比较两个字符串时出现"command not found"错误

我的整个脚本目前是这样的:

#!/bin/sh   
clear;   
blanko="";   
# Dummy-Variablen
variable=Testvariable;   
if [[$variable == $blanko]];
then   
  echo "Nichts da!"   
else   
  echo $variable   
fi
Run Code Online (Sandbox Code Playgroud)

如果我进入

TestSelect.sh
Run Code Online (Sandbox Code Playgroud)

我明白了

/usr/bin/TestSelect.sh: line 6: [[Testvariable: command not found   
Testvariable
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

string syntax bash if-statement compare

50
推荐指数
2
解决办法
6万
查看次数

如何在Bash中测试字典小于或等于的字典?

在Bash中,有一种简单的方法可以测试一个字符串是否按字典顺序小于或等于另一个字符串?

我知道你可以这样做:

if [[ "a" < "b" ]]
Run Code Online (Sandbox Code Playgroud)

用于测试严格的不平等,或

if [[ 1 -le 1 ]]
Run Code Online (Sandbox Code Playgroud)

对于数字.但-le似乎没有使用字符串,并使用<=给出语法错误.

bash

25
推荐指数
2
解决办法
3万
查看次数

bash中双方括号的含义

Kyle Brandt的答案中,这个[[ ]]结构被描述为"bash内置测试命令".以下是一个例子.

  if [[ ( $a -gt 2 ) && ( $a -lt 5 ) ]]; then ...
Run Code Online (Sandbox Code Playgroud)

为什么双字括号在字面上是[[ ]]必要的?

bash

11
推荐指数
2
解决办法
6511
查看次数

为什么测试"$?" 一个反模式,看一个命令是否成功?

在这里看到测试是否$?是零(成功)或其他东西(失败)是反模式,但我无法在其他任何地方找到它.

坚持维基百科反模式的定义:"反模式(或反模式)是对反复出现的问题的常见反应,这种反复出现的问题通常是无效的,并且可能会产生极大的反作用." 为什么这会是反模式?

bash shell sh

8
推荐指数
1
解决办法
476
查看次数

重构 terraform 代码时是否有一种明智的方法来更新相应的 terraform 状态?

这是一个场景 - 您开发 terraform 模块以供您的研发组织使用。它们已经被一两个微服务使用,相当于十几个 Pod。您确定了一个重构机会,例如将一些功能提取到自己的 terraform 模块中。太好了,但是现在你必须更新十几个 terraform 状态,因为这是 terraform 代码重构的代价。

经过一次这样的重构后,我发现自己花了 8 个小时来更新所有 terraform 状态。我以一种临时的方式来做这件事——使用 powershell 脚本包装各种 terraform 状态命令。如果经常这样做,一个人很快就会失去理智。

当然,我们可以说——不要重构。但这是不可能的,因为 terraform 代码是……代码。那么,有没有更好的方法呢?某种可以提供帮助的工具,不知何故?

terraform

5
推荐指数
1
解决办法
932
查看次数