dan*_*dan 2 shell conditional-statements
我正在尝试运行一些shell命令,如果文本文件中不存在字符串.如果我将此行粘贴到命令行中,如果给我一个错误.
if [ $(cat textfile.txt | grep "search string") -eq "" ]; then; echo "some string"; fi;
Run Code Online (Sandbox Code Playgroud)
错误:
-bash: [: -eq: unary operator expected
Run Code Online (Sandbox Code Playgroud)
如果您[]用于比较,则需要使用=而不是-eq.你还需要一些报价.
if [ "$(cat textfile.txt | grep 'search string')" = "" ]; then; echo "some string"; fi;
Run Code Online (Sandbox Code Playgroud)
请注意,grep可以将文件名作为参数,因此cat不需要.您也可以直接使用返回值grep:如果找不到搜索字符串,则grep返回1.
if [ "$(grep 'search string' textfile.txt)" ]; then
echo "some string";
fi
Run Code Online (Sandbox Code Playgroud)
更紧凑的方式是使用逻辑和&&.
grep "search string" textfile.txt && echo "some string"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7565 次 |
| 最近记录: |