我想将.txt文件与用户的输入进行比较
,例如
read -p 'Enter the ammount you want to withdraw:' amm
if [ $amm > bank.txt ];
then
echo 'You dont have enough money in your account'
else
$bank - $amm >> bank.txt
fi
我不知道它是在Google上问错误的问题还是没有答案。
您可以使用命令的输出,就好像它实际在脚本本身中一样。在这种情况下,您需要文件的内容,因此可以使用:
if [[ ${amm} -gt $(cat bank.txt) ]]
或更好的是避免额外的cat
进程:
if [[ ${amm} -gt $(<bank.txt) ]]
这将执行命令cat bank.txt
,捕获其输出,并将其放置在被执行的命令中。因此,如果该文件包含单行42
,那就好像您的命令是:
if [[ ${amm} -gt 42 ]]
当然,如果该文件不存在或应该包含一个单个数字以外的其他内容,则该方法无法正常工作。您可能应该在使用内容之前检查内容。
和bash
还提供了一种使用((...))
而不是[[...]]
进行此操作的方法,这可能更自然地与您想要表达的内容相适应。
if (( ${amm} > $(<bank.txt) ))
,但我实际上更喜欢 [[...]]
变体。