自动重新连接交互式 SSH 会话以在终端上重新建立 shell 的最佳方法是什么?我查看了 autossh,但这似乎专用于端口转发(我不需要)。
有没有任何 shell-fu 或实用程序允许这样做?
我想做一个设置来动态监控我的 Wifi 网络上的工作站。我的名称服务器 BIND 和 dhcpd 服务器都在 linux 下完美运行。但是当 dhcp 为机器提供 IP 时,我没有找到任何执行脚本的选项。我想知道是否有办法做到这一点。如果没有选项,我将使用日志文件。
除了我自己的电脑,我有时会在学校使用 Ubuntu 集群。与其手动保持我的 .bashrc 同步,我想让学校集群的 .bashrc 源通过 URL 从 DropBox 成为我的个人 .bashrc 。但是,当我天真地尝试时source http://myurl,我只会收到一个错误:http://myurl: No such file or directory. 如何从位于在线的脚本中获取 bash 源代码?
最坏的情况是,我可以卷曲到一个命名管道并获取它。还有更优雅的吗?
我最近开始将我的 shell 脚本从使用反引号转移到括号来原位执行命令并在其他地方使用结果。例如:
for line in `cat file`
do
echo "$line"
done
Run Code Online (Sandbox Code Playgroud)
现在我使用括号,替换为:
for line in $(cat file)
...
Run Code Online (Sandbox Code Playgroud)
这两种方法之间的实际区别是什么,为什么认为括号替换比反引号更好?
是否有可能只有在 cd 进入特定文件夹时才执行的 bash 脚本(如 a.bashrc或.bash_profile,基本上)?
我遇到了以下代码段:
sh -c 'some shell code' sh …
Run Code Online (Sandbox Code Playgroud)
(其中…表示零个或多个附加参数)。
我知道第一个sh是命令。我知道sh -c应该执行提供的 shell 代码(即some shell code)。第二个目的是sh什么?
类似或相关的问题有时会sh -c在答案中正确使用后作为后续问题出现,并且提问者(或其他用户)想详细了解答案的工作原理。或者它可能是“这段代码做什么?”类型的更大问题的一部分。当前问题的目的是在下面提供规范的答案。
这里涵盖的主要问题、类似或相关问题是:
sh在sh -c 'some shell code' sh …?bash在bash -c 'some shell code' bash …?find-sh在find . -exec sh -c 'some shell code' find-sh {} \;?some shell code在一个 shell 脚本中并且我们调用了./myscript foo …,那么 …如何在目录甚至子目录中查找所有零字节文件?
我这样做了:
#!/bin/bash
lns=`vdir -R *.* $dir| awk '{print $8"\t"$5}'`
temp=""
for file in $lns ; do
if test $file = "0" ;then
printf $temp"\t"$file"\n"
fi
temp=$file
done
Run Code Online (Sandbox Code Playgroud)
...但我只有该目录中的文件,而不是所有文件,如果任何文件名有空格,我只会得到第一个单词后跟一个制表符。
谁能帮我?
我想写一个shell script或alias查找目录中不同类型文件的数量。例如,脚本的示例输出应该是:
*.h 20
*.c 40
*.cpp 10
Makefile 3
Run Code Online (Sandbox Code Playgroud) 我有一个包含许多类似文件的大目录。我必须发送一些随机文件进行审核。这些文件不应来自顶部或底部(例如,不在head或 中tail)。这是我正在努力的子过程。
我想获取任意数量的文件。它可能是 10 或 2 或 3,但不应按任何顺序排列。
例如从这个文件列表:
10 1121231243 12 3124234ewdf 31243345 xaa 112 1121231243214 3 3124234ewdffd 3124334532 xab 1121 112123124321442334 3124 31243 3124334532324 xac 112123 1121ewszf 3124234 312433 file1
Run Code Online (Sandbox Code Playgroud)
我想在这个例子中得到一个随机子集:
1121 112123124321442334 3124 1121ewszf
Run Code Online (Sandbox Code Playgroud) 我有一个将新代码提取到我的服务器的过程,其中代码打包在 tar 文件中。tar 中引用的每个文件都备份到特定目录。我想通过读取 tar 并相应地处理每个文件来自动执行此过程。如何在 shell 脚本中执行此操作?
谢谢!