Questions tagged «shell»

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

4
是否有任何CLI /终端幻灯片显示应用程序?
我问自己:在Linux上,有没有可以在终端上构建并显示简单幻灯片的软件,例如您在Libreoffice Impress上制作的幻灯片(但更简单)? 仅使用控制台进行演示,而没有任何高级图形(例如GL和framebuffer),也许仅使用ncurses或其他类似的lib,这将是一次很棒的体验。 有什么帮助吗? 编辑1:我正在使用并推荐vimdeck。谢谢大家:D 编辑2:对于独立软件或可以使用LaTeX的任何插件,此问题仍然存在。

6
管道传输到外壳中的多个文件
我有一个应用程序,该应用程序会产生大量不希望存储到磁盘上的数据。该应用程序主要输出我不希望使用的数据,但是输出的一组有用信息必须拆分为单独的文件。例如,给出以下输出: JUNK JUNK JUNK JUNK A 1 JUNK B 5 C 1 JUNK 我可以这样运行应用程序三遍: ./app | grep A > A.out ./app | grep B > B.out ./app | grep C > C.out 这可以让我得到想要的东西,但是会花费太长时间。我也不想将所有输出转储到单个文件中并通过它进行解析。 有什么方法可以将上面显示的三个操作组合在一起,使我只需要运行一次应用程序,仍然可以获得三个单独的输出文件?
29 bash  shell  grep  pipe 


4
如何将最后一个命令保存到文件?
当我使用bash shell运行分析时,我经常想将已经使用好的命令保存到同一目录下的文件中(称为“ LOGBOOK”),以便检查我确实得到了那些结果。到目前为止,这意味着我要么从终端复制。粘贴命令,要么按“向上”将命令修改为echo"my command" >> LOGBOOK或其他类似的滑稽动作。 我前history几天发现有一个工具,但是我找不到一种使用它来获取先前执行的命令的方法,因此我可以执行getlast >> LOGBOOK。 有没有一个很好的简单方法来做到这一点。或者,其他人如何处理保存命令以获取其结果呢?

3
bash多行命令,在连续字符后带有注释
考虑 echo \ # this is a comment foo 这给出: $ sh foo.sh # this is a comment foo.sh: line 2: foo: command not found 在网上搜索后,我在姐妹网站Stack Overflow上找到了DigitalRoss的解决方案。所以一个人可以做 echo `: this is a comment` \ foo 或者 echo $(: this is a comment) \ foo 但是,DigitalRoss没有解释这些解决方案为何起作用。我希望得到一个解释。他回答说: 以前有一个shell goto命令,它会分支到:此处指定的标签。该goto走了,但你仍然可以使用的 : whatever语法... :是一种解析的评论了。 …
29 bash  shell 

1
可以安全使用`find -exec sh -c`吗?
我试图使用find来echo 0为一些文件,但显然这只是作品有sh -c: find /proc/sys/net/ipv6 -name accept_ra -exec sh -c 'echo 0 > {}' \; 但是使用sh -cwith find -exec使我感到非常不安,因为我怀疑引用问题。我摆弄了一下,显然我的怀疑是有道理的: 我的测试设置: martin@dogmeat ~ % cd findtest martin@dogmeat ~/findtest % echo one > file\ with\ spaces martin@dogmeat ~/findtest % echo two > file\ with\ \'single\ quotes\' martin@dogmeat ~/findtest % echo three > …
29 shell  find 

3
重定向顺序
我不太了解计算机如何读取此命令。 cat file1 file2 1> file.txt 2>&1 据我了解,2>&1只需将标准错误重定向到标准输出。 按照这种逻辑,命令对我的读取如下: 连接文件file1和file2。 stdout从此操作发送到file.txt。 发送stderr至stdout。 结束? 我不确定计算机在做什么。按照我的逻辑,该命令应为 cat file1 file2 2>&1 > file.txt 但这是不正确的。

2
为什么`sort <“ $ f1”`优先于`sort-“ $ f1”`,为什么它优先于`sort“ $ f1”`?
从https://unix.stackexchange.com/a/458074/674 记住-- 在将任意参数传递给命令时使用(或在可能的情况下使用重定向)。因此,sort -- "$f1"或更好的sort &lt; "$f1"替代sort "$f1"。 为什么首选使用--和重定向? 为什么sort &lt; "$f1"优先于sort -- "$f1"? 为什么 sort -- "$f1"优先于sort "$f1"? 谢谢。

1
如何使用oh-my-zsh禁用zsh中的“ auto cd”
谷歌搜索没有显示任何结果。这就是我的意思:x我的路径中有一个二进制文件(不是当前文件夹,但在中PATH),并且在当前工作目录中还有一个具有相同名称的文件夹。如果输入x,我希望二进制文件执行,但将其CD放入该文件夹。我该如何解决?
29 shell  zsh  oh-my-zsh 

4
BASH基本从十进制转换为十六进制
在Bash中,如何将基数从十进制转换为另一基数,尤其是十六进制。似乎很容易走另一条路: $ echo $((16#55)) 85 通过网络搜索,我发现了一个脚本,该脚本可以进行数学和字符操作来进行转换,并且可以将其用作函数,但是我以为bash已经具有内置的基本转换-可以?

3
`{{(出口1); 1号出口;}; }`是什么意思?
我引用了config.status产生的下一个代码段configure。 if test ! -f "$as_myself"; then { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" &gt;&amp;5 echo "$as_me: error: cannot find myself; rerun with an absolute path" &gt;&amp;2;} { (exit 1); exit 1; }; } fi 在代码段中,该怎么{ (exit 1); exit 1; };做?仅exit在子外壳中执行操作的目的是什么?

8
为什么在sh循环中的“ do”之后没有“;”?
为什么在shell循环中单行写完;后没有字符do? 这就是我的意思。多行编写时,for循环看起来像: $ for i in $(jot 2) &gt; do &gt; echo $i &gt; done 并在一行上: $ for i in $(jot 2); do echo $i; done 除该行外,所有折叠行都在;其后得到a ,如果包含,则是错误的。某人可能比我聪明得多,这决定这样做是有原因的,这是正确的,但我不知道原因是什么。对我来说似乎不一致。do; 用相同的while循环了。 $ while something &gt; do &gt; anotherthing &gt; done $ while something; do anotherthing; done
28 shell 

1
是什么?在嘘吗?
如果尝试a;;b在sh中运行,则会收到此错误: sh: &lt;number&gt;: Syntax error: ";;" unexpected 如果我尝试a;;;b得到相同的错误,而;;;不是,而不是;;,那么我认为这;;意味着一些,尽管我不知道这是什么意思。 这是一个例子: $ echo A;;echo B sh: 1: Syntax error: ";;" unexpected $ echo A;;;echo B sh: 1: Syntax error: ";;" unexpected $ echo A; ;echo B sh: 1: Syntax error: ";" unexpected 在这里您可以看到,我使用; ;而不是;;错误时有所不同,这与我;以前没有使用命令的事实有关。;;似乎是一个不同的运算符,尽管我不知道它适用于什么。
28 shell 

4
Shell函数中局部变量的范围
看完24.2。局部变量,我认为var使用关键字声明变量local意味着var仅在函数的花括号分隔的代码块中可以访问的值。 但是,在运行以下示例之后,我发现var也可以从该代码块调用的函数中进行访问,读取和写入-即,即使var被声明local为outerFunc,innerFunc也仍然可以读取和更改其值。 Run It Online #!/usr/bin/env bash function innerFunc() { var='new value' echo "innerFunc: [var:${var}]" } function outerFunc() { local var='initial value' echo "outerFunc: before innerFunc: [var:${var}]" innerFunc echo "outerFunc: after innerFunc: [var:${var}]" } echo "global: before outerFunc: [var:${var}]" outerFunc echo "global: after outerFunc: [var:${var}]" 输出: global: before outerFunc: [var:] …

3
如何从外壳中永久删除别名
当我不在电脑旁时,有人得到了它,并ls在我的根文件夹中设置了别名。他将其设置为'yes NeverGonnaGiveYouUp'。所以现在当我在我的根文件夹中并键入时,ls我得到一个NeverGonnaGiveYouUp的无限循环。它让我发疯,我不知道如何摆脱它。 我已经尝试过了unalias,unalias -a但是那些只是暂时将其删除。一旦我关闭外壳并重新打开它,它就会回来。我如何摆脱这种胡扯?
28 shell  terminal  alias 

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.