小编ser*_*sat的帖子

在 shell 脚本中使用字符串操作删除字符串的最后一个字符

我想删除字符串的最后一个字符,我尝试了这个小脚本:

#! /bin/sh 

t="lkj"
t=${t:-2}
echo $t
Run Code Online (Sandbox Code Playgroud)

但它打印“lkj”,我做错了什么?

string shell-script

244
推荐指数
11
解决办法
58万
查看次数

不断检查文件是否被修改 bash

我在脚本中有一个名为 file1 的文件,每当它发生变化时,就做一些事情,实际上是发出哔哔声。我怎么做?

linux bash monitoring shell-script files

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

getopts 的选项字符串的第一个字符是 :(冒号)的目的是什么?

在使用时的选项字符串中getopts,来自http://wiki.bash-hackers.org/howto/getopts_tutorial

如果选项字符串的第一个字符是 :(冒号),这通常是无意义的,因为它前面没有选项字母,getopts 会切换到“静默错误报告模式”。在生产脚本中,这通常是您想要的,因为它允许您自己处理错误而不会被烦人的消息打扰。

我想知道以下是什么意思:

  • “静默错误报告模式”

  • “它允许您自己处理错误而不会被烦人的消息打扰”?

你能举一些例子吗?

bash getopts

9
推荐指数
1
解决办法
5645
查看次数

enp3s0:链接尚未准备好

我的输出中有一些奇怪的消息dmesg

[    7.588762] IPv6: ADDRCONF(NETDEV_UP): enp3s0: link is not ready
[    7.589616] IPv6: ADDRCONF(NETDEV_UP): enp3s0: link is not ready
[    7.591897] IPv6: ADDRCONF(NETDEV_UP): eno1: link is not ready
[    7.827124] IPv6: ADDRCONF(NETDEV_UP): eno1: link is not ready
Run Code Online (Sandbox Code Playgroud)

一般来说我不需要ipv6并且它被禁用:

~$ cat /etc/sysctl.conf 
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Run Code Online (Sandbox Code Playgroud)

eno1甚至还被拔掉电源。那么为什么我在dmesg输出中看到这些消息以及如何修复它?

fedora ipv6 dmesg

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

是否可以修改只读目录中的文件?

我已经读过:有没有办法就地修改文件? 我很好奇是否有办法使用不会创建临时文件的命令来修改文件。假设我创建了一个目录 mkdir read_only ,然后在 read_only 中创建了一些文件。当我愉快地完成创建文件时,我运行chmod 555 read_only. 现在是否可以在不使用临时文件的情况下修改任何文件?具体来说,我想要一个可以从 bash 脚本完成的解决方案。我不想知道是否有可能;我也在寻求解决方案。到目前为止,我使用 bash/unix 命令管理的所有想法都会创建临时文件。

编辑:我相信我的问题不是Can a file be edit with 'write' permission on it 但不是在其父目录上的重复出于以下原因:

  • 除了问“可以”之外,我还在寻求解决方案。而他们只问“可以”。
  • 可能重复的答案并不能完全回答我的问题。我要求可以进入 bash 脚本的命令。

bash sed perl files

4
推荐指数
1
解决办法
4890
查看次数

从终端启动单色全屏

对于测试显示,我需要显示单色全屏,并快速从一种颜色切换到下一种颜色。这可以从终端完成吗?

像这样的东西:

DISPLAY=:0 color #ff0000
Run Code Online (Sandbox Code Playgroud)

terminal x11

4
推荐指数
1
解决办法
1282
查看次数

无法使用 shift 键输入大写字母

在某些应用程序中,输入大写字母的作用类似于按 ESC 键。

再现:

  • 打开 LibreOffice 文档
  • 选择“另存为”(Unity 对话框)
  • 点击“创建文件夹”
  • 使用 shift 键输入大写字母(例如 Shift+A)

此时,新文件夹的创建被取消。(如 ESC 键被击中)

这种行为也存在于许多不同的程序和游戏中。

使用xev(按 Shift+d)分析情况

# xev
KeyPress event, serial 37, synthetic NO, window 0x4c00001,
    root 0x259, subw 0x0, time 994702, (15,-13), root:(987,197),
    state 0x10, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

FocusOut event, serial 37, synthetic NO, window 0x4c00001,
    mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 37, synthetic NO, window 0x4c00001, …
Run Code Online (Sandbox Code Playgroud)

keyboard-shortcuts keyboard x11

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

sed 删除行 httpd.conf

我有一个httpd配置文件,我想从中删除整个块:

<Directory "/var/www/html">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks

#
# AllowOverride controls what directives may be placed in .htaccess files. …
Run Code Online (Sandbox Code Playgroud)

sed

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

如何跳过文件中修改的第一个,最后一个非空行和空行?

我有一个类似这样的文件:

H|ACCT|XEC|1|TEMP|20130215035845

849002|48|1208004|100|||1

849007|28|1208004|100|||1

T|2|3



请注意,文件末尾有额外的空行。

我想在所有行中用第 4 列的值替换第 5 列的值,除了第一行和最后一行非空行。

我不能依赖字段的数量,因为最后一行的字段可能与其他字段一样多,而且要修改的行也总是以数字开头。

我试过下面的代码:

awk 'BEGIN{FS="|"; OFS="|"} {$5=$4; print}' in.txt
Run Code Online (Sandbox Code Playgroud)

输出是:

H|ACCT|XEC|1|1|20130215035845
||||
849002|48|1208004|100|100||1
||||
849007|28|1208004|100|100||1
||||
T|2|3||
||||
||||
||||
Run Code Online (Sandbox Code Playgroud)

预期输出:

H|ACCT|XEC|1|TEMP|20130215035845|

849002|48|1208004|100|100||1

849007|28|1208004|100|100||1

T|2|3



如何跳过第一个和最后一个非空行进行更改?我也想跳过空行。

sed awk shell-script text-processing

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