Questions tagged «shell»

术语“外壳”是指通常与Unix和Linux操作系统相关联的一类基于文本的交互式命令解释器。对于有关shell脚本的问题,请使用更具体的标签,例如'bash','powershell'或'ksh'。没有特定标签的情况下,应该假定使用便携式(符合POSIX的)解决方案,尽管最好另外使用“ posix”或“ sh”。


10
Bash脚本来计算经过的时间
我正在用bash编写脚本来计算执行命令所花费的时间,请考虑: STARTTIME=$(date +%s) #command block that takes time to complete... #........ ENDTIME=$(date +%s) echo "It takes $($ENDTIME - $STARTTIME) seconds to complete this task..." 我想我的逻辑是正确的,但是我最终得到了以下打印输出: “完成此任务需要几秒钟的时间...” 我的字符串评估有什么问题吗? 我相信bash变量是无类型的,但是如果bash中有“从字符串到整数”的方法,我还是很乐意的。
118 linux  bash  shell 




12
如何通过脚本编辑/ etc / sudoers?
我需要编辑 /etc/sudoers从脚本中,才能从白名单中添加/删除内容。 假设我有一个适用于普通文件的命令,我该如何将其应用于/etc/sudoers? 我可以复制和修改它,然后visudo用修改后的副本替换原件吗?通过提供我自己的脚本$EDITOR? 还是可以只使用相同的锁和cp? 问题不仅仅是潜在的问题,而不仅仅是找到有效的方法。
116 linux  shell  sudo 

26
从Shell脚本检查目录是否包含文件
从Shell脚本中,如何检查目录是否包含文件? 与此类似 if [ -e /some/dir/* ]; then echo "huzzah"; fi; 但是如果目录包含一个或多个文件,则该方法有效(以上一个仅适用于0或1个文件)。
116 bash  unix  shell 

19
如何从文本文件中删除换行符?
我有以下数据,需要将它们全部放在一行中。 我有这个: 22791 ; 14336 ; 22821 ; 34653 ; 21491 ; 25522 ; 33238 ; 我需要这个: 22791;14336;22821;34653;21491;25522;33238; 编辑 这些命令都无法完美运行。 他们中的大多数让数据看起来像这样: 22791 ;14336 ;22821 ;34653 ;21491 ;25522
116 linux  bash  scripting  shell  sed 



5
从命令行运行JAR文件并指定类路径
我已经编译了一个JAR文件,并在清单中指定了Main-Class(我使用了Eclipse Export函数)。我的依赖项都在标有的目录中lib。在指定应将JAR文件lib/*用作类路径的同时,我似乎无法获得关于如何执行我的JAR文件的直接答案。 我试过了: ]$ java -jar -cp .:lib/* MyJar.jar ]$ java -cp .:lib/* -jar MyJar.jar ]$ java -cp .:lib/* com.somepackage.subpackage.Main 等等... 每个都给出一个错误说: Error: Could not find or load main class .... 或NoClassDefFoundError指出未找到库。 我什至尝试重新制作JAR文件,并包含lib目录和内容,但仍然没有问题。 如何从命令行执行JAR文件并指定要使用的类路径?

30
从Bash中的$ PATH变量中删除路径的最优雅方法是什么?
或更笼统地说,如何从Bash环境变量中以冒号分隔的列表中删除项目? 我以为几年前我已经看过一种简单的方法,可以使用更高级的Bash变量扩展形式,但是如果这样的话,我就会迷失方向。快速搜索Google却发现几乎没有相关结果,而我也称其为“简单”或“优雅”。例如,分别使用sed和awk的两种方法: PATH=$(echo $PATH | sed -e 's;:\?/home/user/bin;;' -e 's;/home/user/bin:\?;;') PATH=!(awk -F: '{for(i=1;i<=NF;i++){if(!($i in a)){a[$i];printf s$i;s=":"}}}'<<<$PATH) 没有简单的东西存在吗?有什么类似于Bash中的split()函数吗? 更新: 对于我故意含糊的问题,我似乎需要道歉;我对解决特定用例的兴趣不及引起良好讨论的兴趣。幸运的是,我明白了! 这里有一些非常聪明的技术。最后,我在工具箱中添加了以下三个功能。魔术发生在path_remove中,这主要是基于Martin York对awkRS变量的巧妙使用。 path_append () { path_remove $1; export PATH="$PATH:$1"; } path_prepend () { path_remove $1; export PATH="$1:$PATH"; } path_remove () { export PATH=`echo -n $PATH | awk -v RS=: -v ORS=: …


10
node.js shell命令执行
我仍在尝试掌握如何运行linux或Windows shell命令并在node.js中捕获输出的细节。最终,我想做这样的事情... //pseudocode output = run_command(cmd, args) 重要的一点是output全局范围内的变量(或对象)必须可用。我尝试了以下功能,但是由于某种原因,我被undefined打印到控制台了。 function run_cmd(cmd, args, cb) { var spawn = require('child_process').spawn var child = spawn(cmd, args); var me = this; child.stdout.on('data', function(me, data) { cb(me, data); }); } foo = new run_cmd('dir', ['/B'], function (me, data){me.stdout=data;}); console.log(foo.stdout); // yields "undefined" <------ 我很难理解代码在哪里突破了...该模型的非常简单的原型可以工作... function try_this(cmd, …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.