【问题标题】:Script as a variable value脚本作为变量值
【发布时间】:2021-12-29 22:52:42
【问题描述】:

您能否解释一下是否可以将脚本存储为变量?这是脚本:

### SCRIPT1 ###

if [ "$4" = "test-1" ] ; then
        existing_user1=$(ldapsearch -x -b "cn=users,cn=servers,ou=servers,dc=com" -H ldap://127.0.0.1 -D "cn=admin,dc=servers,dc=com" -w "pass" cn     uid | grep "uid: $3" | grep -oE '[^ ]+$')
        if [ "$existing_user1" = "$3" ] ; then
                exit -1
        elif [ "$existing_user1" = "" ] ; then 
                gid=523 ; cn="cn=users,cn=servers"
        fi

elif [ "$4" = "servers2" ] ; then
        existing_user2=$(ldapsearch -x -b "cn=users,cn=servers,ou=servers,dc=servers,dc=com" -H ldap://127.0.0.1 -D "cn=admin,dc=servers,dc=com" -w "pass" cn uid | grep "uid: $3" | grep -oE '[^ ]+$')
        if [ "$existing_user2" = "$3" ] ; then
               (echo "dn: cn=servers,ou=servers,dc=servers,dc=com"
               echo "add: memberUid"
               echo "memberUid: $3") | ldapmodify -D "cn=admin,dc=servers,dc=com" -w "pass"
               exit -1
       elif [ "$existing_user2" = "" ] ; then
               gid=523 ; cn="cn=users,cn=servers"
               (echo "dn: cn=servers,ou=servers,dc=servers,dc=com"
               echo "add: memberUid"
               echo "memberUid: $3") | ldapmodify -D "cn=admin,dc=servers,dc=com" -w "pass"
       fi
fi
)

我试过这样

my_new_variable=( 在这里,我从上面粘贴了脚本 )

但是,看起来它不能正常工作...我用引号更改了括号,但这也不起作用。

到目前为止,我确实有一些简单的东西作为变量值,但没有像另一个 bash 脚本那样复杂。

我想将上面的脚本设置为我以后可以在 awk 中的脚本中使用的变量。

提前谢谢你

【问题讨论】:

    标签: bash if-statement variables awk script


    【解决方案1】:

    您可以使用此处的文档:

    script=$(cat <<"EOF"
    ### SCRIPT 1 ###
    
    # commands
    
    # last line
    EOF
    )
    

    "EOF"EOF 之间的所有内容都按字面意思传递,作为cat 的标准输入。这嵌套在命令替换中,以将其放入变量中。最后的EOF 字符串必须在它自己的行上,所以结束的) 必须在下一行。请注意,任何尾随的新行都将被删除,因为它是命令替换。

    "EOF" 可以是任何引用的单词。如果不使用引号,则扩展变量、算术和命令子项。

    此语法可移植到 sh,而不是特定于 bash。

    【讨论】:

      【解决方案2】:

      您应该首先将其保存为文件,然后将其存储到某个变量中。 例如 var=$(cat script.sh)

      【讨论】:

      • 但是,是否可以将其存储在同一个脚本中,而不是存储在另一个文件中?我想避免拥有多个文件。
      猜你喜欢
      • 2019-03-23
      • 2016-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2012-01-08
      相关资源
      最近更新 更多