小编Ato*_*lan的帖子

简单的bash CSV数组问题

我正在尝试做一些相当简单的事情,而我只是做得很短.这是我正在尝试使用的示例变量:

20,80,443,53
Run Code Online (Sandbox Code Playgroud)

该变量只是由逗号分隔的一串端口.我需要把它们放到一个数组中.

csv arrays bash

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

在子shell中阻止来自被调用的bash函数的输出

如果我在bash中调用一个函数,并且该函数本身被设计为使用printf将消息输出到终端,我该如何抑制该功能.请允许我进一步解释.

通常我会有一个主脚本.该脚本调用一个函数.该函数使用printf执行其正常的操作并输出到终端.

我试图创建一个替代选项,你可以说,在后台运行该功能,不输出任何东西.

通常我会考虑做以下事情:

FUNCTION & > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

这将在后台运行正常功能并丢弃所有输出.

它似乎起初工作.通常出现的消息是空白的,主脚本完成运行.一旦回到提示,那么函数(循环用于许多不同的东西)就完成了,并开始输出到提示下面的终端.

思考?

linux bash null background

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

sh shell for loop without seq

我正在编写一个必须在bash和sh中运行的脚本,它在一个微小的平台上运行,并且有些东西似乎缺失了,例如seq.所有这些限制/要求使得编写此脚本非常困难.我需要编写一个在所有这些要求下工作的for循环.

这仅适用于bash:

for (( i = 0; i <= 4; i++ ))
do
  echo $i
done
Run Code Online (Sandbox Code Playgroud)

这应该在sh中工作,但我正在使用的平台显然缺少seq.

for i in $(seq 1 $INPUT); do
Run Code Online (Sandbox Code Playgroud)

$ INPUT是用户定义的最大值.

bash for-loop sh

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

正则表达式计算字符

我正在尝试验证|的数量 在文件的行中.在这个例子中,它检查恰好5个条.

^[\|]{5}$
Run Code Online (Sandbox Code Playgroud)

这将验证5,但不考虑/忽略其他字符.

Dice|Puppy|Button|Sunny|Music|Extra
Run Code Online (Sandbox Code Playgroud)

我错过了什么?正则表达式总是让我失望.

regex bash

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

转到 if 语句的开头吗?

如果用户没有在 bash 和 sh 中提供正确的输入,无论如何要返回到 if 语句的开头?

if [ "$INPUT" = "no" ]; then
    Do something
elif [ "$INPUT" = "yes" ]; then
    Do something else
else
    echo "Input not understood"
    Go back to beginning of if statement
fi
Run Code Online (Sandbox Code Playgroud)

bash if-statement sh

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

Python 3 argparse 调用函数

需要帮助理解 Python 3 中的 argparse 用例。尝试编写一个使用参数调用各种函数的简单程序。例如:

[程序] [操作] [可选参数]

nachos.py delete 20394739
- or -
nachos.py -d 20394739

nachos.py search 30459389
- or -
nachos.py -s 30459389

nachos.py list
- or -
nachos.py -l
Run Code Online (Sandbox Code Playgroud)

试图弄清楚如何使用 Python 3 实现这一点。请帮忙。谢谢你!

import argparse
parser = argparse.ArgumentParser(description='Example list of options')
parser.add_argument('-d', '--delete', action='delete', help='Delete ID')
parser.add_argument('-s', '--search', action='search', help='Search ID')
parser.add_argument('-l', '--list', action='list', help='List all ID')
args = parser.parse_args()

def (some function to handle each case)
Run Code Online (Sandbox Code Playgroud)

* 更新 *

到目前为止,这似乎有效,但检查可能很长的 if 语句列表似乎又慢又笨拙。有没有办法用一个看起来更具体、更重要的函数来做到这一点?

parser = …
Run Code Online (Sandbox Code Playgroud)

function argparse python-3.x

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

sh shell double if语句

谁能看到我在这里做错了什么?我不断收到以下错误消息:[[:找不到

read INPUT
if [[ "$INPUT" -ge 1 ]] && [[ "$INPUT" -le 10 ]]; then
  Do something
else
  printf "Please enter a value between 1 and 10"
fi
Run Code Online (Sandbox Code Playgroud)

bash if-statement sh

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

标签 统计

bash ×6

sh ×3

if-statement ×2

argparse ×1

arrays ×1

background ×1

csv ×1

for-loop ×1

function ×1

linux ×1

null ×1

python-3.x ×1

regex ×1