标签: bash

用于打印具有特定行长的文件的 Bash 脚本

我是新手……我需要一个脚本,它接收一个目录作为参数并打印 15 到 50 行之间的文件的名称,但我不知道如何使用-sentence 中的wc输出if

#!/bin/bash
for f in `ls`; do
  echo "File -> $f"
  cat $f | wc -l
done
Run Code Online (Sandbox Code Playgroud)

我如何接收参数?以及如何将wc输出分配给变量?

bash

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

这个命令 :(){ :|: & };: 有什么作用?

这个 shell 命令在 Linux 中有什么作用

:(){ :|: & };:
Run Code Online (Sandbox Code Playgroud)

它如何用于拒绝服务攻击?

linux bash shell shell-script denial-of-service

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

将目录附加到 PATH

我正在尝试在本地向全局$PATH变量添加一个目录。我将以下内容添加到我的.bashrc.

export PATH=$PATH:$VRS/bin
Run Code Online (Sandbox Code Playgroud)

PATH似乎每次我打开一个外壳时都会一遍又一遍地连接到自身(即PATH不断增长)。有任何想法吗?

bash bashrc bash-scripting

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

如何转义包含特殊字符(如 - 或空格)的文件

一个目录的内容:

$ ls -l
total 122639
-rw-r--r-- 1 125578080 Aug 20 17:47 - Diana Krall, Stan Getz & Oscar Peterson.7z
drwxr-xr-x 4      4096 Aug 20 18:02 Java
Run Code Online (Sandbox Code Playgroud)

我想用file这个目录下的命令,里面复制了很多各种文件

$ file *
Run Code Online (Sandbox Code Playgroud)

我期望的结果:

$ file *
- Diana Krall, Stan Getz & Oscar Peterson.7z: 7-zip archive data, version 0.3
java: directory
Run Code Online (Sandbox Code Playgroud)

我得到的结果:

$ file *
file: illegal option --
file: illegal option -- D
file: illegal option -- a
file: illegal option -- a
file: illegal option --
file: …
Run Code Online (Sandbox Code Playgroud)

linux bash msys

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

预先授权sudo?(所以它可以稍后运行)

我经常在晚上回家之前让我的工作计算机运行一些耗时的计算。完成后,我希望它关闭。但是,由于关闭需要 root 权限,因此必须使用sudo执行。显然,7 小时后我没有在那里输入我的密码,到目前为止,我不得不以 root 身份执行整个命令列表(cmd1;cmd2;cmd3;...shutdown)——这并不理想。

有没有办法可以在命令列表的末尾“预授权”sudo?以某种方式我可以在执行开始时完成我的密码,这样 bash 以后就不需要我了?

谢谢!

linux sudo bash passwords command-line

3
推荐指数
2
解决办法
2109
查看次数

ls命令shell脚本中的不同输出

我的 linux 机器上有一个奇怪的行为,我需要你的建议。我想捕获此命令的输出

ls -log /some/directory 
Run Code Online (Sandbox Code Playgroud)

从命令行运行命令结果正常:

-rw-r--r--. 1 22650880 2013-09-09 12:02 file1.txt
-rwxr--r--. 1 20733952 2012-07-09 17:42 file2.txt
-rw-r--r--. 1 31596544 2013-09-09 23:42 file3.txt
-rw-r--r--. 1 15773696 2013-09-10 11:15 file4.txt
Run Code Online (Sandbox Code Playgroud)

所以我使用awk( ls -log /some/directory| awk '{print $6","$4" "$5}' | tr "\n" ";") 的最终结果:

file1.txt,2013-09-09 12:02;file2.txt,2012-07-09 17:42;... 
Run Code Online (Sandbox Code Playgroud)

当我将ls命令放入 Bash 脚本时,我的问题出现了,因为日期已转换。结果是Sep 09 12:02而不是2013-09-10 11:15

如何在命令行输出中获取日期?

linux bash command-line

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

检测显示在 Linux 中是否有效

有没有办法以受控方式检测显示是否有效?例如,如果我设置了$DISPLAY=anydisplay$DISPLAY=0.0,有没有办法检查我是否有权访问anydisplay0.0是否是有效的显示?我正在编写一个旨在从 bash 脚本启动的程序,其想法是警告用户如果他们的显示无效并在“控制台”模式下运行该程序。

linux display bash

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

在 bash 的 for 循环中打开多个终端

最近我改为lxdeon Ubuntu。切换后它改变了我x-terminal-emulatorlxterm

我的脚本执行以下操作:

通过 for 循环并打开一个新的终端窗口,然后在该终端中运行脚本。它会同时打开多个终端,在所有不同的窗口中运行该脚本。

切换到lxde它后,它将循环并等待每个终端窗口在下一个终端窗口启动之前完成脚本。我希望它做它正在做的事情。

我通过改x-terminal-emulatorgnome-terminal. 现在它工作正常。然而,这是一个少数人使用的脚本系统,他们都使用不同的环境和终端模拟器。我如何确保这适用于所有不同的终端仿真器,或者至少适用于xterm每个人都会拥有的任何一个。

谢谢


代码片段:

for blah in something
do
    x-terminal-emulator -e bash my_script.sh
done
Run Code Online (Sandbox Code Playgroud)

linux terminal bash

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

我将如何`wget` 文件,然后按下载日期而不是文件名保存它们?

我的目标:下载 131 个 JPEG 并将它们保存为相对于日期/时间格式而不是文件名的文件名格式。

我已经尝试过在下载文件更改文件名的方法。但是,这些方法不起作用,因为似乎没有保留 exif 数据。例如:jhead -n%Y%m%d-%H%M%S *.jpg只返回一堆错误说:

Possible new names for for '{filename}.jpg' already exist
File '{filename}.jpg' contains no exif date stamp.  Using file date
Run Code Online (Sandbox Code Playgroud)

通常,在这种情况下,我最终得到的文件比开始时要少。

那么有什么我可以传递给的命令wget吗?我已经尝试过该--timestamp选项但没有成功。(手册页没有明确说明它的作用。)

linux bash wget

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

错误:cut:linux中的分隔符必须是单个字符

我试图从stdata.txt 中删除第一列和第二列,从stdata1.txt 中删除第二列。

数据.txt :

1 a 10
2 b 20
3 c 30
Run Code Online (Sandbox Code Playgroud)

studata1.txt :

i si
co oi
me zi
Run Code Online (Sandbox Code Playgroud)

这是我的 bash 文件:

cut -d -f -2 studata.txt >tmp1
cut -d -f 2- studata1.txt > tmp2
paste tmp1 tmp2 > c.txt
cat c.txt
Run Code Online (Sandbox Code Playgroud)

错误:

cut: the delimiter must be a single character
Run Code Online (Sandbox Code Playgroud)

linux bash

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