Tag: shell

ExitCodes大于255,可能吗?

如果是的话,在哪个操作系统,shell或其他? 考虑下面的Java程序(我只是使用Java作为例子,任何语言都适合这个问题,这更多的是关于操作系统): public class ExitCode { public static void main(String args[]) { System.exit(Integer.parseInt(args[0])); } } 在Linux和bash上运行,它总是返回小于等于255的值,例如( echo $?打印先前执行的命令的退出代码) > java ExitCode 2; echo $? 2 > java ExitCode 128; echo $? 128 > java ExitCode 255; echo $? 255 > java ExitCode 256; echo $? 0 > java ExitCode 65536; echo $? 0 编辑:下面的(只有,到目前为止)答案完全解释了在UNIX上发生的事情。 我还在想其他的操作系统。

有没有办法改变Unix的另一个进程的环境variables?

在Unix上,有没有什么办法可以让一个进程改变别人的环境variables(假设他们都是由同一个用户运行的)? 一般的解决办法是最好的,但如果不是,那么一个是另一个的孩子的具体情况呢? 编辑:如何通过GDB?

想从Java调用一个linux shell命令

我正尝试使用redirect(>&)和pipe道(|)从Java执行一些Linux命令。 Java如何调用csh或bash命令? 我试图用这个: Process p = Runtime.getRuntime().exec("shell command"); 但是它不兼容redirect或pipe道。

(冒号)GNU Bash内build的目的是什么?

一个无所作为的命令的目的是什么,只不过是一个评论领袖,而实际上却是一个内在的壳呢? 比每次调用大概40%的脚本插入评论要慢很多,这取决于评论的大小。 我能看到的唯一可能的原因是: # poor man's delay function for ((x=0;x<100000;++x)) ; do : ; done # inserting comments into string of commands command ; command ; : we need a comment in here for some reason ; command # an alias for `true' (lazy programming) while : ; do command ; done 我想我真正想要的是它可能具有的历史应用。

Bash工具从文件中获得第n行

有没有一个“规范”的方式呢? 我一直在使用head -n | tail -1 head -n | tail -1这个技巧,但我一直想知道是否有一个Bash工具,专门从文件中提取一行(或一系列的行)。 “规范”是指一个主要function就是这样的程序。

如何testingvariables是否是Bash中的数字?

我只是不知道如何确保传递给我的脚本的参数是否是一个数字。 我想要做的就是这样的事情: test *isnumber* $1 && VAR=$1 || echo "need a number" 任何帮助?

在Bash中redirectstderr和stdout

我想将进程的stdout和stderrredirect到单个文件。 我如何在Bash中做到这一点?

当相同的代码在别处工作时,为什么shell脚本会出现语法错误?

我有一个简单的shell脚本,我从一个工作脚本中复制。 如果我将其复制粘贴到terminal,它将起作用: if true then true fi 然而,当我用bash myscript运行脚本时,我得到各种语法错误,就好像一些关键字丢失一样。 myscript: line 4: syntax error near unexpected token `fi' ,就好像then不存在。 myscript: line 6: syntax error: unexpected end of file ,就好像fi不存在一样。 myscript: line 4: syntax error near unexpected token `$'\r' ..什么? 为什么在这个特定的脚本中发生这种情况,而不是在我的命令行或从我复制的脚本中?

如何在unix / linux shell中进行模式匹配时使用反向或负向通配符?

说我想复制一个目录的内容,不包括名称中包含单词“音乐”的文件和文件夹。 cp [exclude-matches] *Music* /target_directory 应该用什么来代替[排除比赛]来完成呢?

通过在Bash中的string数组循环?

我想写一个脚本,通过15个string循环(数组可能?)这是可能的吗? 就像是: for databaseName in listOfNames then # Do something end