如何编写一个脚本来接受来自文件名参数或标准输入的输入?
例如,您可以使用less这种方式。一个可以执行less filename和等效cat filename | less。
有没有一种简单的“开箱即用”的方式来做到这一点?还是我需要重新发明轮子并在脚本中编写一些逻辑?
我有一个备份脚本,可以将一些数据备份到 USB 设备。我遇到的问题是 OSX 有时会更改预期的安装路径。例如,如果某个文件被锁定在预期的挂载路径下,OSX 会将其挂载到另一个路径上。名为“BACKUP”的 USB 设备可以安装在 /Volumes/BACKUP-1 而不是 /Volumes/BACKUP。
有没有办法在 OSX 终端中找出 USB 设备的当前挂载路径?像'mount_path BACKUP'(命令是假的)之类的东西,如果设备没有安装,它会返回'/Volumes/BACKUP-1'或什么都不返回?
我对 bash 很满意,但最近我换了一个我不知道的替代品。
<(command)bash究竟是什么?它与=(command)zsh中的相比如何?
我知道这与默认文件描述符有关。在我的电脑里
echo <()
Run Code Online (Sandbox Code Playgroud)
Returns /proc/self/fd/11,我发现它是脚本 STDOUT 的副本,但这对我来说似乎仍然很混乱。
我想替换从 输出的字符串grep,我有:
$ npm info webpack | grep version
Run Code Online (Sandbox Code Playgroud)
它输出我
$ version: '2.1.0-beta.12',
Run Code Online (Sandbox Code Playgroud)
但我想要:
$ 2.1.0-beta.12
Run Code Online (Sandbox Code Playgroud)
所以我想我可以使用sed并替换不必要的子字符串来实现这一点。但对我来说困难的部分是:
$ npm info webpack | grep version: | sed s/version: /
sed: -e expression #1, char 10: unterminated `s' command
Run Code Online (Sandbox Code Playgroud)
怎样才能达到我的目标?
我想将一个 bash 数组变量写到一个文件中,每个元素都在一个新行上。我可以用 for 循环来做到这一点,但是还有另一种(更干净的)方法来连接元素\n吗?
我需要NAME在目录树中找到所有以该名称开头的文件,并使用一个 shell 命令删除所有这些文件。
我正在使用 Cygwin bash 提示符,对于长命令,尽管将我的 PS1 设置为简单的“$”,但文本将在同一行上换行而不是转到下一行。
这是一个截图,

我已经在 Linux 上使用 Bash shell 多年了,而且我用它很快。通过经常通过按 Tab 键来请求自动完成,我能够在几次击键中编写长命令。
最近在我的工作中,我开始使用 Windows 命令提示符和 Cmd。我在 Cmd 中很慢。它具有自动完成功能,但工作方式不同。我想我明白它是如何工作的,但我不明白如何有效地使用它,事实上它经常让我慢下来。所以我问,如何有效地使用Cmd的自动完成?
让我举个例子吧。首先,我将描述我如何使用 Bash,然后我如何尝试使用 Cmd,以及出了什么问题。
假设当前目录中的文件夹具有来自大陆和国家的名称,例如。africa-nigeria, asia-india, europe-france, 以及我想将文件夹更改为europe-norway.
Bash 的自动完成的工作方式是,tab 键只有在存在唯一扩展时才会扩展。否则,什么也不会发生,但您可以再次按 Tab 键以列出可能的扩展。
因此,要在 Bash 中移至挪威,我键入cd并进行以下按键操作:
europe-europe-netherlands并europe-norway作为潜在的扩展。europe-norway。伟大的!谢谢巴什。
但是,当我在 Cmd 中尝试相同的键时,它会扩展e tab为europe-albania,这恰好是以“e”开头的第一个文件夹,但这不是我想要的文件夹!我现在该怎么办——有没有可能把阿尔巴尼亚变成挪威?或者我必须取消命令Escape并从头开始输入所有内容?
在 Windows 上运行“在 Ubuntu 上运行 Bash”时,它通常会在键入时生成 Windows 通知声音。常见原因如下:
如何禁用这些声音效果?
bash windows-10 windows-subsystem-for-linux windows-10-v1607
如何验证file2上次修改是在 之后file1?
在本例中,perl修改时间比stack. 是否有 bash 或 Linux 命令可以根据修改时间比较这些文件?
-rw-r--r-- 1 root root 1577 Sep 7 22:55 stack
-rwxr-xr-x 1 root root 626 Sep 7 23:10 perl
Run Code Online (Sandbox Code Playgroud)