当我想在屏幕上显示日历时,脚本向我显示有条件的错误(如果有的话),但是我不知道为什么。我想应该没问题。

# !/bin/bash
rm --f calen
mostrar = 0
echo "agrega un mes"
read mes
echo "agrega un año"
read year
echo "Agregar [1] para mostrar las dos primeras semanas, o [2] para mostrar las ultimas dos semanas"
read mostrar
if[$mostrar = 1]  then
    cal -m $mes $year >> calen
    head -n 4 calen
else
    cal -m $mes $year >> calen
    head -n 2 calen
    tail -n 3 calen
fi

最佳答案

假设(仅出于示例目的)mostrar0,则此行:

if[$mostrar = 1]  then


表示“使用参数if[0=1]运行命令then”。由于您没有名为if[0的命令,因此该命令会崩溃。

您可以通过在命令的各个组件周围添加空格来解决大多数问题。此外,在then之前需要用分号或换行符,并且应将$mostrar扩展名用双引号引起来,以防止文件名扩展和单词拆分(两者都可能导致奇怪的结果)。所以:

if [ "$mostrar" = 1 ] ; then

关于linux - 我的Bash代码中发生了什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38194293/

10-10 15:36