我想将.txt文件中的值与用户输入
进行比较e.g。
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
我不知道我是否在谷歌上提出了错误的问题,或者说这个行动没有答案。
答案 0 :(得分:1)
您可以使用命令的输出,就好像它实际上在脚本本身中一样。在这种情况下,您需要文件的内容,因此您可以使用:
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) ))
但我实际上更喜欢[[...]]
变体。