linux - 我无法解决此 bash 脚本中的语法错误(版本 4.1.2)

标签 linux bash scripting

下面是我用于复制数据的 bash 脚本代码,但我在 SUBSTRING 中遇到语法错误线。我是 bash 新手,所以无法理解语法有什么问题。如有任何帮助,我们将不胜感激。

#!/bin/bash



cd /var/www/html/zong/public/HostedPBX/

     for i in $(echo */);   #..This loop shows number of directories  in a
folder to display them.....
       do

            echo /var/www/html/zong/public/HostedPBX/$i
        done                echo""  echo "Above are the folders listed in current directory..."

sleep 2     echo""  echo "Taking Backup of above folders...."

sleep 3

    for i in $(echo /var/www/html/zong/public/HostedPBX/*/ );

        **SUBSTRING=$(echo $i | cut -d'/' -f 7)
#        $SUBSTRING=$(echo $i cut -d'/' -f 7)**    ####...this also gives syntax error
        do
           cp -R $i /root/HostedPBX_Backup/$SUBSTRING               ##...Uncommment this line to copy files from HostePBX to HostedPBX_Backup.....

            done

最佳答案

bash中,变量名只能包含大写、小写、数字和下划线。用字符类术语来说,那就是:

[[:alnum:]_]

此外,任何用户定义的变量名称都不能以数字开头。

在您的情况下,您的变量定义为:

**SUBSTRING=....
$SUBSTRING=....

由于前面所述的原因,这些声明是不正确的。

关于linux - 我无法解决此 bash 脚本中的语法错误(版本 4.1.2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37734662/

相关文章:

java - sha256sum 不匹配错误在 crunchbang wheezy 上安装 Oracle Java 7

linux - 我可以在vim中计算每行的长度吗?

c - libiptc : adding DNAT rule with destination IP

linux - sed 命令在 gitlab runner 上无法正确执行

linux - 用于在 Linux 上验证用户帐户的 Bash 正则表达式

ruby-on-rails - 如何在Rails控制台中通过脚本测试SQLite数据库?

具有多个强制选项的 bash getopts

linux - 用于备份我的 "home"文件夹的 Bash 脚本

c# - 是否有 C# 工具可以让我执行任意代码块?

c# - 编译 C# 脚本很慢