相关疑难解决方法(0)

shell 的控制和重定向操作符是什么?

我经常在网上看到用不同符号连接各种命令的教程。例如:

command1 |  command2
command1 &  command2
command1 || command2    
command1 && command2
Run Code Online (Sandbox Code Playgroud)

其他人似乎将命令连接到文件:

command1  > file1
command1  >> file1
Run Code Online (Sandbox Code Playgroud)

这些是什么?他们叫什么?他们在做什么?还有更多吗?


关于这个问题的元线程。.

shell io-redirection control-flow

353
推荐指数
3
解决办法
17万
查看次数

为什么我的 shell 脚本会因空格或其他特殊字符而阻塞?

或者,有关强大的文件名处理和在 shell 脚本中传递的其他字符串的介绍性指南。

我写了一个 shell 脚本,它在大多数情况下运行良好。但它在某些输入(例如某些文件名)上窒息。

我遇到了如下问题:

  • 我有一个包含空格的文件名hello world,它被视为两个单独的文件helloworld.
  • 我有一个带有两个连续空格的输入行,它们在输入中缩小为一个。
  • 前导和尾随空格从输入行中消失。
  • 有时,当输入包含其中一个字符时\[*?,它们会被一些文本替换,这实际上是文件的名称。
  • 输入中有一个撇号'(或双引号"),在那之后事情变得很奇怪。
  • 输入中有一个反斜杠(或者:我使用的是 Cygwin 并且我的一些文件名具有 Windows 样式的\分隔符)。

这是怎么回事,我该如何解决?

shell bash shell-script quoting whitespace

341
推荐指数
3
解决办法
32万
查看次数

如何测试我在终端中使用的外壳?

如何检查我在终端中使用的外壳?我在 MacOS 中使用的外壳是什么?

shell

96
推荐指数
5
解决办法
13万
查看次数

如何在不将存档保存到磁盘的情况下下载存档并提取它?

我想下载并解压缩给定目录下的存档。到目前为止,这是我的做法:

wget http://downloads.mysql.com/source/dbt2-0.37.50.3.tar.gz
tar zxf dbt2-0.37.50.3.tar.gz
mv dbt2-0.37.50.3 dbt2
Run Code Online (Sandbox Code Playgroud)

我想即时下载和解压缩存档,而无需将其tar.gz写入磁盘。我认为通过管道输出wgettotar并给出tar目标是可能的,但实际上我不知道如何将这些部分放在一起。

shell tar pipe wget

93
推荐指数
3
解决办法
9万
查看次数

#! 之间是否允许空格?和/bin/bash 在shebang?

在shebang中,#!和解释器之间是否允许有一个或更多的空间?

例如,#! /bin/bash。看起来可行,但有人说这是不正确的。

shebang

59
推荐指数
3
解决办法
1万
查看次数

unix shell 脚本的文件扩展名

在维基百科上,.sh的文章说:

有关 .sh 文件扩展名类型,请参阅Bourne shell

其他unix shell怎么样?

我知道在文件中 使用shebang来指示要执行的解释器,但我想知道:

  • 文件扩展名与无文件扩展名的优缺点是什么?

scripting conventions shell-script filenames files

54
推荐指数
5
解决办法
12万
查看次数