相关疑难解决方法(0)

shell编程中$(command)和`command`有什么区别?

要将命令的输出存储为sh/ksh/bash中的变量,您可以执行任一操作

var=$(command)
Run Code Online (Sandbox Code Playgroud)

要么

var=`command`
Run Code Online (Sandbox Code Playgroud)

两种方法之间有什么区别?

bash shell ksh sh

241
推荐指数
5
解决办法
4万
查看次数

Bash中单方括号和双方括号之间的区别

我正在阅读bash示例,if但有些示例是用单个方括号编写的:

if [ -f $param ]
then
  #...
fi
Run Code Online (Sandbox Code Playgroud)

其他双方括号:

if [[ $? -ne 0 ]]
then
    start looking for errors in yourlog
fi
Run Code Online (Sandbox Code Playgroud)

有什么不同?

bash if-statement

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

bash seq替换中的变量({1..10})

有可能做这样的事情:

start=1
end=10
echo {$start..$end}
# Ouput: {1..10}
# Expected: 1 2 3 ... 10 (echo {1..10})
Run Code Online (Sandbox Code Playgroud)

bash seq

50
推荐指数
4
解决办法
8万
查看次数

如何在bash for循环中使用变量

如何在bash for循环中使用变量?如果我只是使用标准for循环,它会做我期望的

for i in {0..3}
do
   echo "do some stuff $i"
done
Run Code Online (Sandbox Code Playgroud)

这很好用.它循环4次,0到3次,打印我的消息并将计数结束.

do some stuff 0
do some stuff 1
do some stuff 2
do some stuff 3
Run Code Online (Sandbox Code Playgroud)

当我尝试使用以下for循环时,它似乎等于一个字符串,这不是我想要的.

length=3
for i in {0..$length}
do
   echo "do something right $i"
done
Run Code Online (Sandbox Code Playgroud)

输出:

do something right {0..3}
Run Code Online (Sandbox Code Playgroud)

我试过了

for i in {0.."$length"} and for i in {0..${length}} (both output was {0..3})
Run Code Online (Sandbox Code Playgroud)

for i in {0..'$length'} (output was {0..$length})
Run Code Online (Sandbox Code Playgroud)

他们都不做我需要的事.希望有人可以帮助我.在此先感谢任何bash专家对for循环的帮助.

linux bash for-loop

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

bash for loop:一系列数字

我在.sh文件中有以下代码:

for num in {1..10}
do
  echo $num
done
Run Code Online (Sandbox Code Playgroud)

哪个应该从1到10打印数字.但是,这是我得到的:

{1..10}
Run Code Online (Sandbox Code Playgroud)

此外,使用类似C的sytax也不起作用:

for ((i=1; i<=10; i++))
Run Code Online (Sandbox Code Playgroud)

这给我一个错误:

Syntax error: Bad for loop variable
Run Code Online (Sandbox Code Playgroud)

我拥有的bash版本是4.2.25.

bash for-loop

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

通过ksh中的一系列整数进行迭代?

如何在ksh中使用for循环遍历一个简单的整数范围?

例如,我的脚本目前正在执行此操作...

for i in 1 2 3 4 5 6 7
do
   #stuff
done
Run Code Online (Sandbox Code Playgroud)

...但是我想将范围扩展到7以上.有更好的语法吗?

shell ksh

21
推荐指数
6
解决办法
5万
查看次数

用变量支撑扩展?

#!/bin/sh
for i in {1..5}
do
   echo "Welcome"
done
Run Code Online (Sandbox Code Playgroud)

会工作,显示欢迎5次.

#!/bin/sh
howmany=`grep -c $1 /root/file`
for i in {1..$howmany}
do
   echo "Welcome"
done
Run Code Online (Sandbox Code Playgroud)

Doesn't work! howmany would equal 5 as that is what the output of grep -c would display. $1 is parameter 1 which is specific when running the script.

Any ideas?

variables syntax bash variable-expansion

16
推荐指数
5
解决办法
6483
查看次数

用变量top-end编写一个bash for-loop

我经常使用众所周知的语法在bash中编写for循环:

for i in {1..10}  [...]
Run Code Online (Sandbox Code Playgroud)

现在,我正在尝试编写一个顶部由变量定义的地方:

TOP=10
for i in {1..$TOP} [...]
Run Code Online (Sandbox Code Playgroud)

我尝试了各种各样的parens,花括号,评估等,并且通常会收到错误的"错误替换".

如何编写for-loop以使限制取决于变量而不是硬编码值?

unix linux bash for-loop

15
推荐指数
2
解决办法
1万
查看次数

如何在bash中使用变量名生成循环数序列?

任何人都可以解释我如何在bash for循环中使用变量名来生成一系列数字?

for year in {1990..1997}
do
  echo ${year}
done
Run Code Online (Sandbox Code Playgroud)

结果:

1990 1991 1992 1993 1994 1995 1996 1997

然而

year_start=1990
year_end=1997
for year in {${year_start}..${year_end}}
do
  echo ${year}
done
Run Code Online (Sandbox Code Playgroud)

结果:

{} 1990..1997

如何让第二种情况起作用?否则我必须写一些乏味的循环.非常感谢.

bash for-loop sequences

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

如何在bash for循环中迭代多个不连续范围

注意:我不是在问这个问题

我查找了有关如何循环一系列不连续数字(如0,1,2,4,5,6,7,9,11)的信息,而无需手动输入数字并仍然使用范围.

显而易见的方法是这样做:

for i in 0 1 2 4 5 6 7 9 11; do echo $i; done
Run Code Online (Sandbox Code Playgroud)

bash

6
推荐指数
1
解决办法
9104
查看次数