根据文件内容运行 .sh 文件

根据文件内容运行 .sh 文件

我想创建一个 .sh 文件,该文件需要查看不同文件的内容,在本例中是 postgresql 配置文件。

有没有什么方法可以让我根据不同文件的内容运行 .sh 文件中的命令?

答案1

当然可以,在你的脚本中,你可以从文件内容中 grep 一些唯一的关键字,如果内容存在则确定,否则退出。

grep -F "$word1" "$filename"

如果输出成功则脚本运行,否则不运行

答案2

在同一文件夹中创建新文件yes_or_no

nano yes_or_no

内容如下

#!/bin/bash
search_for="foo"
grep -q "$search_for" "$1"
if [ $? -eq 0 ]; then
    echo "The file \"$1\" contains \"$search_for\""
    ./give_a_yes
else
    echo "The file \"$1\" doesn't contains \"$search_for\""
fi

使脚本可执行

chmod +x yes_or_no

在同一文件夹中创建新文件give_a_yes

nano give_a_yes

内容如下

#!/bin/bash
echo "\"$0\" executed"

使文件可执行:

chmod +x give_a_yes

创建一些数据文件:

echo "foo" > foo
echo "bar" > bar

启动脚本

$ ./yes_or_no bar
The file "bar" doesn't contains "foo"

$ ./yes_or_no foo
The file "foo" contains "foo"
"./give_a_yes" executed

相关内容