当我将脚本从崇高的环境复制到外壳时,输出很奇怪,但是当我逐行复制时,效果很好

时间:2018-12-03 13:59:42

标签: bash shell ubuntu scripting

下面是我在崇高中编写的脚本

DAY="$(ls -ltr 1000011.AUD | awk '{print $6,$7}')"
if [ $(ls -ltr *.AUD | egrep "$DAY" | wc -l) -gt 0 ]
then 
    if [ $(ls -ltr *.AUD | egrep "$DAY" | wc -l) -gt 1 ]
    then 
        echo "More files are there"
    else
        echo "Everything Ok"
        FNAME="$(ls -ltr *.AUD | egrep "$DAY" | awk -F ' ' '{print $9}')"
        #DAY="$(date +%m%d%Y)"
        #less "$FNAME" |  grep "$DAY" | grep 'from' | awk -F' ' '{print $7}' | sort | uniq -c
    fi
else
    echo "Send alarm"
fi

但是当我复制完整脚本时,它显示一些奇怪的输出,如所附的屏幕截图所示(但是当我逐行复制时,它可以正常工作)。 screenshot of the error

1 个答案:

答案 0 :(得分:1)

您可能使用制表符缩进了脚本。对于某些终端,复制粘贴选项卡与直接按选项卡相同。按下Tab键可启用命令完成功能,这就是您在此处看到的。

可能的解决方案:

  • 推荐:请勿将粘贴代码复制到终端。将其存储在文件中,然后使用chmod u+x file.sh一次运行该文件,然后根据需要运行./file.sh
  • 执行source <(cat),然后粘贴您的脚本并按 Ctrl + D
  • 复制粘贴时,仅使用空格缩进代码。