如果所选文本中出现字符串“----- BEGIN PGP MESSAGE -----”,我想解密所选文本。 我有以下代码,但它没有显示任何内容。
#!/bin/bash
xsel > pgp.txt
if [grep -e "-----BEGIN PGP MESSAGE-----" pgp.txt]
then
gnome-terminal --command "gpg -d -o decrypted.txt pgp.txt"
gedit decrypted.txt
fi
当我在选择文本后在终端上运行它时
line 3: [grep: command not found
我是bash脚本的新手。任何帮助都会受到赞赏..
谢谢
答案 0 :(得分:1)
它将名为[grep
的可执行文件搜索为if
参数。 if
执行其then或else分支,具体取决于其参数是否成功执行。是的,[
是一个命令(test
btw的同义词)。你可能想要
if grep -q -e "-----BEGIN PGP MESSAGE-----" pgp.txt
then
(已添加-q
,因此grep
不会输出任何内容。)
答案 1 :(得分:0)
我认为你错过了一些元素:
这是一个重写版本:
if [ `grep -e "-----BEGIN PGP MESSAGE-----" pgp.txt` ]; then
gnome-terminal --command "gpg -d -o decrypted.txt pgp.txt"
gedit decrypted.txt
fi
答案 2 :(得分:0)
我想建议你两个变种。两者都是平等的
if $(grep -q -- "-----BEGIN PGP MESSAGE-----" pgp.txt);
then
OR
if $(grep -qe "-----BEGIN PGP MESSAGE-----" pgp.txt);
then