小编Siv*_*iva的帖子

下面声明的调用函数

是否可以调用下面在 bash 中声明的函数?

例子

if [ "$input" = "yes" ]; then
    YES_FUNCTION
elif [ "$input" = "no" ]; then
    NO_FUNCTION
else
    exit 0;
fi

YES_FUNCTION()
{
  .....
  .....
}

NO_FUNCTION()
{
  .....
  .....
}
Run Code Online (Sandbox Code Playgroud)

linux shell-script function

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

如何在centos上安装手册页?

注意:这适用于 Centos 7。如果您正在寻找 Debian 的答案,请参阅此问题。这些答案不会在这里重复。

安装 centos 7 后,我无法访问手册页:

# man ls
-bash: man: command not found
Run Code Online (Sandbox Code Playgroud)

我尝试通过 yum 安装它

# yum install man-pages
... ok
Run Code Online (Sandbox Code Playgroud)

但是再次:

# man ls
-bash: man: command not found
Run Code Online (Sandbox Code Playgroud)

为什么?

man centos

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

如何` ... | awk '$1=$1'` 删除多余的空格?

按照我的理解,$1是第一个字段。但奇怪的是,awk '$1=$1'省略了额外的空格。

$ echo "$string"
foo    foo bar               bar

$ echo "$string" | awk '$1=$1'
foo foo bar bar
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

awk

17
推荐指数
2
解决办法
3865
查看次数

[ -n "$PS1" ] 在 bashrc 中的用途

[ -n "$PS1" ]in 的目的是什么[ -n "$PS1" ] && source ~/.bash_profile;?此行包含在.bashrcdotfiles repo的 a 中。

osx bash bashrc

12
推荐指数
2
解决办法
3174
查看次数

如何使用字符的 unicode 值 grep 字符?

我有一个 Unicode 字符 ?,由它的 Unicode 代码点 16A0 表示,在一个文本文件中(文本文件被编码(?)为 utf-8)。

当我这样做时,grep '\u16A0' test.txt我没有结果。我如何 grep 那个字符?

grep regular-expression unicode

12
推荐指数
2
解决办法
5306
查看次数

如何将带有grep命令的字符串搜索放入if语句中?

我想在两个文件中搜索多个字符串。如果在两个文件中都找到一个字符串,则做一些事情。如果只在一个文件中找到一个字符串,那么做另一件事。

我的命令是下一个:

####This is for the affirmative sentence in both files
if grep -qw "$users" "$file1" && grep -qw "$users" "$file2"; then

####This is for the affirmative sentence in only one file, and negative for the other one
if grep -qw "$users" "$file1" ! grep -qw "$users" "$file2"; then
Run Code Online (Sandbox Code Playgroud)

否定和肯定这些陈述的方式是否正确?pd 我正在使用 KSH 外壳。

先感谢您。

grep ksh awk text-processing

11
推荐指数
3
解决办法
2295
查看次数

在另一个文件夹中创建相同的子文件夹

我有一个foo带有子目录的目录。我希望在另一个目录中创建相同的子目录名称而不复制它们的内容。我该怎么做呢?

有没有办法将ls输出作为大括号扩展列表?

mkdir

10
推荐指数
3
解决办法
2753
查看次数

如何将调试输出重定向到文件

-x在执行 shell 脚本时用于调试信息。

如何将调试信息仅重定向到文件?

示例脚本:

#!/bin/bash
echo OK
echo NO
Run Code Online (Sandbox Code Playgroud)

当我在调试模式下运行时,我会得到以下结果

+ echo OK
OK
+ echo NO
NO
Run Code Online (Sandbox Code Playgroud)

我只想将调试信息重定向到文件。

+ echo OK
+ echo NO
Run Code Online (Sandbox Code Playgroud)

运行时输出应该打印在屏幕上。

OK
NO
Run Code Online (Sandbox Code Playgroud)

shell shell-script

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

如何通过VI打开复制的文件

说,我有'a.txt'。我想复制文件并使用 VI 打开新复制的文件。

cp a.txt b.txt
vi b.txt
Run Code Online (Sandbox Code Playgroud)

如何将这两个命令组合在一个命令中?

bash

6
推荐指数
1
解决办法
864
查看次数

替换某行前的字符串

我有一个文件,如:

ID_SOUR_CALENDAR BIGINT NOT NULL DEFAULT 0  COMPRESS 0 ,
UNIQUE PRIMARY INDEX ( CALENDAR_DATE );
ID ,
ID_SOUR ,
PRIMARY INDEX ( CALENDAR_DATE );
Run Code Online (Sandbox Code Playgroud)

我想在包含 PRIMARY 的行之前的行中用 ')' 替换 ','。

结果应该是:

ID_SOUR_CALENDAR BIGINT NOT NULL DEFAULT 0  COMPRESS 0 )
UNIQUE PRIMARY INDEX ( CALENDAR_DATE );
ID ,
ID_SOUR )
PRIMARY INDEX ( CALENDAR_DATE );
Run Code Online (Sandbox Code Playgroud)

sed perl text-processing

6
推荐指数
4
解决办法
1885
查看次数