我想创建一个 .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