Avi*_*kar 1 bash shell-script text-processing
我不确定我是否正确使用了我的论点。我想传入一个参数,它是一个包含字符串的文本文件。当我运行这个脚本时,即使字符串的字符数低于 32,它也总是进入 if 语句。
#!/bin/bash
if [ {$1} > 32 ]; then
echo "Error: Password length invalid"
else
echo "okay"
fi
Run Code Online (Sandbox Code Playgroud)
您可以使用${#variable}. 你应该在表达式中使用-gt而不是。>[ ]
#!/bin/bash -
pass=$(cat < "$1") || exit
if [ "${#pass}" -gt 32 ]; then
echo >&2 "Error: Password length invalid"
exit 1
else
echo "okay"
fi
Run Code Online (Sandbox Code Playgroud)
这会计算作为第一个参数传递的文件中的字符数(在当前语言环境的编码中解释),而不是字节数,除了尾随换行符之外,因此对于包含一行文本的文件,它为您提供了那条线。
| 归档时间: |
|
| 查看次数: |
4802 次 |
| 最近记录: |