小编Bre*_*eph的帖子

如何使具有多个条件的 while 循环在真实条件下停止?

我正在提供一个带有以下内容的 while 循环

#!/bin/bash
number1=1
while [ -z "$number2" ] | [ "$number2" == 404 ] & [ "$number2" != 200 ] & [ "$number1" -lt 13 ]; do
  #number2=$(some command which can actually get a number)
  number2=200 # <<< e.g. a command that would return 
  let number1=number1+1
done
Run Code Online (Sandbox Code Playgroud)

这是我需要做的

If number2is null 做循环
If number2is 404 做循环
If number2is 200 不要做循环
做循环直到number1是 12

当我尝试循环时,number2=200它不会停止。似乎我在让它停止 where number2is 方面遇到了挑战200

我如何编写语句以便在number2=200 …

bash

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

如何使用 IFS 将字符串拆分为字母并在无空格/空、空格和字符处读取 -?

我有一个字符串-w o rd
我需要将它拆分为w o r d或数组,因为'w' 'o' 'r' 'd' 它并不重要。
我已经尝试了以下

IFS='\0- ' read -a string <<< "-w o rd"  
echo ${string[*]}
Run Code Online (Sandbox Code Playgroud)

rd不会分裂。我怎样才能让它分裂

bash read

3
推荐指数
1
解决办法
720
查看次数

除了 bash 中的最后一个参数,我如何回显所有参数?

我有以下

#!/bin/bash
function f1 ()
{
  echo "${@:1:-2}"
}
f1 1 2 3 4 5 6
Run Code Online (Sandbox Code Playgroud)

我需要 echo1 2 3 4 5 man bash告诉我,当我使用时,@我不能使用负长度。

我求助于使用计算 ( "${@:1:$((${#@}-1))}") 这对我来说似乎是非正统的。

如何从输出中排除最后一个参数?

bash parameter bash-functions

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

如何使用括号展开但使用逗号而不是空格作为输出中的分隔符?

我需要这样做IFS=",";echo {1..5}才能输出1,2,3,4,5而不是1 2 3 4 5. 如何使 bash echo {1..5} 并用逗号输出值?

bash-expansion

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

如何在 bash 中回显所有大于 2 个字符的参数?

我有以下

#!/bin/bash
function f1 ()
{
  echo "all parameters with more than 2 characters"
}
f1 123 45 6789
Run Code Online (Sandbox Code Playgroud)

我需要对字符大于 2 的参数做一些事情。我可以在不将"$@"扩展到循环的情况下回显它们然后进行检查wc -c 在这种情况下,我需要输出123 6789

bash

0
推荐指数
1
解决办法
63
查看次数

如何正确使用 sed 删除“”字符之外的文本?

我有aaaaaa"bbbbb"aaaa我只想输出的文本bbbbb

我试过,sed -e 's/"\(.*\)"/\1/'但它只剪切"字符。我如何正确过滤这个

sed text-processing

0
推荐指数
1
解决办法
107
查看次数