我正在尝试做一些相当简单的事情,而我只是做得很短.这是我正在尝试使用的示例变量:
20,80,443,53
Run Code Online (Sandbox Code Playgroud)
该变量只是由逗号分隔的一串端口.我需要把它们放到一个数组中.
如果我在bash中调用一个函数,并且该函数本身被设计为使用printf将消息输出到终端,我该如何抑制该功能.请允许我进一步解释.
通常我会有一个主脚本.该脚本调用一个函数.该函数使用printf执行其正常的操作并输出到终端.
我试图创建一个替代选项,你可以说,在后台运行该功能,不输出任何东西.
通常我会考虑做以下事情:
FUNCTION & > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
这将在后台运行正常功能并丢弃所有输出.
它似乎起初工作.通常出现的消息是空白的,主脚本完成运行.一旦回到提示,那么函数(循环用于许多不同的东西)就完成了,并开始输出到提示下面的终端.
思考?
我正在编写一个必须在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是用户定义的最大值.
我正在尝试验证|的数量 在文件的行中.在这个例子中,它检查恰好5个条.
^[\|]{5}$
Run Code Online (Sandbox Code Playgroud)
这将验证5,但不考虑/忽略其他字符.
Dice|Puppy|Button|Sunny|Music|Extra
Run Code Online (Sandbox Code Playgroud)
我错过了什么?正则表达式总是让我失望.
如果用户没有在 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) 需要帮助理解 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) 谁能看到我在这里做错了什么?我不断收到以下错误消息:[[:找不到
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 ×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