我有这样的代码
var="before"
echo "$someString" | sed '$someRegex' | while read line
do
if [ $condition ]; then
var="after"
echo "$var" #first echo
fi
done
echo "$var" #second echo
Run Code Online (Sandbox Code Playgroud)
这里首先回显"后",但第二次是"之前".如何在"之后"进行第二次回声打印.我认为这是因为买管我不知道怎么弄清楚.
谢谢你的解决方案......
回答编辑:
我纠正了它,它工作正常.感谢eugene的有用答案
var="before"
while read line
do
if [ $condition ]; then
var="after"
echo "$var" #first echo
fi
done < <(echo "$someString" | sed '$someRegex')
echo "$var" #second echo
Run Code Online (Sandbox Code Playgroud) 我有一台服务器,我必须允许远程SSH用户出于某种目的.我想,以加强反对任何形式的壳叉炸弹就可以了.我怎样才能做到这一点 ?我期待一种基于限制特定用户的CPU使用率的解决方案.
我需要使用 select 循环和 case 指令创建一个包含六个选项的选择菜单,但不是菜单选项的 ECHO 命令,它们必须显示如下:
1) opt1
2) opt2
3) opt3
4) opt4
5) opt5
6) opt6
Run Code Online (Sandbox Code Playgroud)
并且不喜欢:
1) opt1 3) opt3 5) opt5
2) opt2 4) opt4 6) opt6
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有这段代码,但问题出在显示上,有 5 个选项时,它垂直显示,但有 6 个选项时,它并排显示:
#! /bin/sh
PS3="Enter your choice :"
select choice in "opt1" "opt2" "opt3" "opt4" "opt5" "Exit"; do
case $REPLY in
1) echo "$choice";;
2) echo "$choice";;
3) echo "$choice";;
4) echo "$choice";;
5) echo "$choice";;
6) echo "see you next time";break;;
*) echo "Wrong …Run Code Online (Sandbox Code Playgroud) 请告诉我用逗号替换多个空格的方法,例如输入字符串
set string "boy cat dog girl man"
Run Code Online (Sandbox Code Playgroud)
字符串之间可以有多个空格例子8男孩和猫之间,4个狗和女孩之间
我想要它 boy,cat,dog,girl,man
这是 2.1.0 版
$ set a foo
$ set b bar
$ echo $a_$b
$ echo {$a}_$b
foo_bar
Run Code Online (Sandbox Code Playgroud)
为什么第一个“回声”什么都不输出?我本来希望看到“酒吧”
鉴于此驱动程序功能仅在给定输入的情况下产生输出:
function driver -a arg
test $arg = 1; and echo OK
return 0
end
Run Code Online (Sandbox Code Playgroud)
当函数发出输出时,事情正常工作:
$ driver 1 | od -c
0000000 O K \n
0000003
$ test -z (driver 1); and echo no output; or echo some output
some output
$ test -n (driver 1); and echo some output; or echo no output
some output
Run Code Online (Sandbox Code Playgroud)
但在无输出的情况下:
$ driver 0 | od -c
0000000
$ test -z (driver 0); and echo no output; or echo some output
no output …Run Code Online (Sandbox Code Playgroud) 我在一个可能持续 24 小时或更长时间的文件中有以下时间戳:
2014-11-11-04.01.05.000000
2014-11-11-04.03.33.000000
2014-11-11-04.06.02.000000
2014-11-11-04.08.31.000000
Run Code Online (Sandbox Code Playgroud)
每个时间戳之间的间隔应小于 5 分钟。如何将一个简单的 bash shell 脚本放在一起来解析文件并告诉我是否有超过 5 分钟的间隔?我看到的最简单的方法是用上一行减去下一行。但我不太擅长 bash shell 脚本。任何人都可以帮忙吗?
如何使用createProcessin 将std_in和std_err重定向到文件System.Process?
我有一个pom文件,其中包含以下信息:
<modelVersion>4.0.0</modelVersion>
<groupId>com.site.camera</groupId>
<artifactId>proj3</artifactId>
<packaging>pom</packaging>
<version>2.6</version>
<name>Proj 3</name>
Run Code Online (Sandbox Code Playgroud)
我正在编写一个bash脚本,并希望能够打开这个文件(pom.xml)并删除版本(例如在这种情况下为2.6).我这样做是因为当我更新版本时,我希望我的脚本的其余部分用它来更新.
我尝试过的事情:
var=$(grep <version>2.6</version> pom.xml)
echo $var
Run Code Online (Sandbox Code Playgroud)
请注意,我在pom文件中有多个版本参数.我需要这个特定的版本,包含这个名称,包装,artifactId等.
各种语言的函数定义语法是:
C(所有脚本语言的教父):
func_type myfunc_c (arg_type arg_name , ...)
{
/* arguments explicitly specified */
}
Run Code Online (Sandbox Code Playgroud)
TCL:
proc myfunc_tcl {arg1 arg2 args} {
# arguments explicitly specified
}
Run Code Online (Sandbox Code Playgroud)
Perl的:
sub myfunc_perl {
# no arguments explicitly specified && no round brackets used
}
Run Code Online (Sandbox Code Playgroud)
蟒蛇:
def myfunc_python(arg1, arg2):
# arguments explicitly specified
Run Code Online (Sandbox Code Playgroud)
击:
function myfunc_bash () {
# arguments NEVER explicitly specified
# WHY using round brackets?
}
Run Code Online (Sandbox Code Playgroud)
为什么在bash中使用圆括号?