您能否解釋一下是否可以將腳本存盤為變數?這是腳本:
### 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 中的腳本中使用的變數。
先感謝您
uj5u.com熱心網友回復:
您可以使用此處的檔案:
script=$(cat <<"EOF"
### SCRIPT 1 ###
# commands
# last line
EOF
)
"EOF"和之間的行上的所有內容都按EOF字面傳遞,作為cat標準輸入。這嵌套在命令替換中,以將其放入變數中。最后一個EOF字串必須在它自己的行上,所以結束)必須在下一行。請注意,任何尾隨的新行都將被洗掉,因為它是一個命令替換。
"EOF"可以是任何參考的詞。如果不使用引號,則擴展變數、算術和命令子。
此語法可移植到sh,而不是 bash 特定的。
uj5u.com熱心網友回復:
您應該首先將其保存為檔案,然后將其存盤到某個變數中。例如 var=$(cat script.sh)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/363000.html
