按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。您更喜欢用什么语言来编写常见任务(备份、同步等)的脚本,为什么?我不是在谈论编程网页或应用程序。在思考为什么bash仍然流行时,我想到了这个问题。例如,Python对我来说看起来更舒服。您是因为知道还是出于某些特殊原因使用它?
在我的Cygwin和我的Linux机器(Debian)上,我遇到了同样的问题:我正在使用某种格式化ID的shell脚本,我想在出现斜杠(/)之前添加一个反斜杠()。我的sed脚本在我的终端上运行良好:#exportsomeid="314-12345/08"#echo"${someid}"|sed's/\//\\\//'输出:314-12345\/08但如果我运行commandsubstitution就不太好了:#someidformatted=`echo"${someid}"|sed's/\//\\\//'`sed:-eexpression#1,char9:unknownoptiont
在我的Cygwin和我的Linux机器(Debian)上,我遇到了同样的问题:我正在使用某种格式化ID的shell脚本,我想在出现斜杠(/)之前添加一个反斜杠()。我的sed脚本在我的终端上运行良好:#exportsomeid="314-12345/08"#echo"${someid}"|sed's/\//\\\//'输出:314-12345\/08但如果我运行commandsubstitution就不太好了:#someidformatted=`echo"${someid}"|sed's/\//\\\//'`sed:-eexpression#1,char9:unknownoptiont
我有下面的脚本,为了满足要求,我必须为每个脚本放置一些函数,以获取每个脚本的时间信息,并最终显示总时间。我的主要脚本如下所示:/u01/scripts/stop.sh${1}|tee${stop_log}/u01/scripts/kill_proc.sh${1}|tee${kill_log}/u01/scripts/detach.sh${1}|tee${detach_log}/u01/scripts/copy.sh${1}|tee${copy_log}我想使用类似下面的函数来获取每个脚本的执行时间,最后我可以使用一个全局变量来显示所有脚本所花费的总时间。我在下面创建但不幸的是我无法正常
我有下面的脚本,为了满足要求,我必须为每个脚本放置一些函数,以获取每个脚本的时间信息,并最终显示总时间。我的主要脚本如下所示:/u01/scripts/stop.sh${1}|tee${stop_log}/u01/scripts/kill_proc.sh${1}|tee${kill_log}/u01/scripts/detach.sh${1}|tee${detach_log}/u01/scripts/copy.sh${1}|tee${copy_log}我想使用类似下面的函数来获取每个脚本的执行时间,最后我可以使用一个全局变量来显示所有脚本所花费的总时间。我在下面创建但不幸的是我无法正常
关于SO和其他地方的一个常见问题是如何使用bashfor循环遍历每一行输出。我知道答案,多年来我一直很高兴地使用以下内容:IFS=$'\n'但是,我对所使用的语法感到有些困惑。我在Google上进行了很好的搜索,但是由于上面搜索引擎使用/忽略的符号数量过多,我没有找到解释。我最近还在另一个脚本的一些输出中发现了这一点。我在回应netcat的结果时遇到了问题。仔细检查后发现,nc的输出格式类似:$'Some_Output_Here\r`我最终需要切断\r,但不确定最好的方法,我最终使用了egrep-o([0-9|a-Z]*)。有更好的想法吗? 最佳答案
关于SO和其他地方的一个常见问题是如何使用bashfor循环遍历每一行输出。我知道答案,多年来我一直很高兴地使用以下内容:IFS=$'\n'但是,我对所使用的语法感到有些困惑。我在Google上进行了很好的搜索,但是由于上面搜索引擎使用/忽略的符号数量过多,我没有找到解释。我最近还在另一个脚本的一些输出中发现了这一点。我在回应netcat的结果时遇到了问题。仔细检查后发现,nc的输出格式类似:$'Some_Output_Here\r`我最终需要切断\r,但不确定最好的方法,我最终使用了egrep-o([0-9|a-Z]*)。有更好的想法吗? 最佳答案
我正在尝试按如下方式执行程序。./chExt1.shcpptest.CPP这应该将test.CPP重命名为test.cpp但我什至不认为这个脚本正在执行。我一直收到此“未找到命令错误”。脚本如下:#!/bin/shnewExtension=$1;oldFile=$2;firstPart=`echo$oldFile|sed's/\(.*\)\..*/\1/'`newName="$firstPart.$newExtension";#echo$oldFile#echo$newNamemv"$oldFile""$newName"#echo"$oldFile"#echo"$firstPart"#
我正在尝试按如下方式执行程序。./chExt1.shcpptest.CPP这应该将test.CPP重命名为test.cpp但我什至不认为这个脚本正在执行。我一直收到此“未找到命令错误”。脚本如下:#!/bin/shnewExtension=$1;oldFile=$2;firstPart=`echo$oldFile|sed's/\(.*\)\..*/\1/'`newName="$firstPart.$newExtension";#echo$oldFile#echo$newNamemv"$oldFile""$newName"#echo"$oldFile"#echo"$firstPart"#
我试图将“awk”结果输出到我的脚本文件中,但没有成功。使用“>”不起作用,为什么?forain$(find$OUPUT_DIR/-maxdepth1-mindepth1-typed-printf"%P\n")doecho$aisadirectoryawk-F,'{if($10=='"$a"')print$0}'$OUPUT_DIR/CDRNOutput_${CDR_DATE}.csv>$OUPUT_DIR/$a/CDR-${CDR_DATE}.csvdone 最佳答案 输出重定向通常是您正在使用的shell的一项功能,考虑到它的使