Questions tagged «shell»

Shell是Unix的命令行界面。您可以交互地在外壳程序中键入命令,也可以编写脚本来自动执行任务。使用此标记可解决适用于/ bin / sh和大多数兼容shell(ash,bash,ksh,zsh等)的问题。对于有错误的Shell脚本,请在此处发布之前在http://shellcheck.net中对其进行检查。



4
如何从数组中完全删除元素?
unset array[0]删除元素,但是如果我仍然echo ${array[0]}得到null值,还有其他方法可以执行此操作,但是如果数组的元素包含如下所示的空格 array[0]='james young' array[1]='mary' array[2]='randy orton' 但是这些也做不到 array=${array[@]:1} #removed the 1st element 现在我希望新数组像 array[0]='mary' array[1]='randy orton' 分配后,空格会引起麻烦,实际数组变得像替换一样。 array=(mary randy orton)

16
使用awk命令删除重复的$ PATH条目
我试图编写一个bash shell函数,该函数将允许我从PATH环境变量中删除目录的重复副本。 有人告诉awk我,可以使用命令使用一行命令来实现此目的,但是我不知道该怎么做。有人知道吗?
48 bash  shell  awk  path 


3
重击:双等于vs -eq
我正在bash中进行整数比较(试图查看用户是否以root用户身份运行),并且发现了两种不同的实现方式: 双重等于: if [ $UID == 0 ] then fi -eq if [ $UID -eq 0 ] then fi 我知道bash中没有> =或<=,只有-ge和-le,所以为什么==会有一个-eq? 双方比较的方式是否有所不同?
47 bash  shell  arithmetic 


8
是否有程序可以在过程完成后向我发送通知电子邮件?
我是一名计算科学家,并且在Linux上运行了大量冗长的计算。具体来说,我使用GROMACS软件包运行分子动力学(MD)模拟。 这些仿真可能需要几天或几周的时间,才能在(例如)8至24个内核上运行。我可以访问群集的多个节点,这意味着在任何给定时间,我都在运行大约4或5个作业(每个作业在不同的节点上,每个作业在8-24个内核上)。 问题在于模拟需要花费可变的时间。我想让所有节点全天候进行仿真,但是要开始新的仿真,我需要使用终端登录并做一些手动工作。但是我总是忘记模拟中还剩下多少时间,因此我总是不断地检查它们。 Linux进程完成后,有什么方法可以接收电子邮件?会有Linux程序可以执行此操作吗?这样,我将知道何时使用终端登录并准备下一个模拟。 我正在使用Ubuntu Linux。谢谢你的时间。
46 shell  process  email 


2
bash-builtins的“设置”和“导出”有什么作用?
我是一个有点损失为目的set,并export在击(我猜可能是其他炮弹太)。 我认为这是用于设置环境变量的,但是可以使用来完成VARIABLE=VALUE,对吧? 同样,键入set和export单独显示不同的值。 那么他们的目的是什么?
46 bash  shell 

4
将字节回显到文件
我正在尝试使用i2c总线将rasberry Pi连接到某些显示器。首先,我想手动写入内容,尤其是字节到文件中。 如何将特定字节写入文件? 我已经读过一篇文章,并且我认为我的问题应该通过这样的方法解决 echo -n -e \x66\x6f\x6f > byteFileForNow 但是,当我使用nano而不是foo打开该文件时,我看到: x66x6fx6f 因此,反斜杠被转义,但字节本身未转义。这次我也只在没有-e的情况下尝试了相同的操作,因此我希望可以看到\ x66 \ x6f \ x6f,但是与以前一样。 因此,echo转义了反斜杠,单独的反斜杠和反斜杠,无论是否应该这样做。 任何想法如何解决这个问题? 根据手册页,应该已经完成​​了我想要的工作。

2
从终端重新启动bash而不重新启动终端应用程序(mac)?
我四处张望,并想找到这个问题的答案,但我似乎没有找到它(这很奇怪)。 我的问题是,有没有一种简单的方法可以从Mac终端上重新启动bash会话。我只是想要与关闭终端应用程序并再次启动它相同的行为(所有变量都重置,.bash_profile源等)。 我知道如何获取.bash_profile,但这不是我想要的。我要执行此操作的原因之一是因为bash提示的插件具有防止多次加载颜色的代码。因此,采购.bash_profile不会重新加载颜色变量,并且我必须重新启动终端应用程序才能使更改生效。
46 bash  shell 

8
为什么POSIX强制性实用程序未内置在Shell中?
这个问题的目的是回答好奇心,而不是解决特定的计算问题。问题是:为什么POSIX强制实用程序通常不内置在Shell实现中? 例如,我有一个脚本,该脚本基本上读取一些小的文本文件并检查它们的格式是否正确,但是由于大量的字符串操作,在我的计算机上运行该脚本需要27秒。通过调用各种实用程序,此字符串操作使成千上万的新进程变慢了。我非常相信,如果一些工具,建于,即grep,sed,cut,tr,和expr,那么脚本会在第二或更小(根据我用C的经验)。 似乎在许多情况下,构建这些实用程序都会使Shell脚本中的解决方案是否具有可接受的性能产生差异。 显然,有一个选择不内置这些实用程序的原因。也许在系统级别使用一个实用程序版本可以避免各种外壳使用该实用程序的多个不相等版本。我真的想不出很多其他原因来保持创建这么多新流程的开销,并且POSIX对实用程序进行了足够的定义,只要它们各自是POSIX,那么使用不同的实现就似乎不是什么大问题符合。至少没有这么多流程的低效率那样大的问题。


9
在父目录而不是子目录中查找搜索
我嵌套在文件树的深处,我想找到哪个父目录包含一个文件。 例如,我在一组嵌套的Git存储库中,想要找到控制我当前所在文件的.git目录。我希望能找到诸如-searchup -iname“ .git”之类的东西
45 shell  find 

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.