如何解决执行从参数接收到的命令到 Bash 脚本中的函数
我正在编写一个脚本来在 linux 中添加和删除 samba 共享。此脚本需要安装 samba 和对话框。
我的完整代码位于 https://paste.ubuntu.com/p/Q45fjcFbwr/
这是一个片段。
#!/bin/bash
function display_output() {
dialog --backtitle "" --title "" --clear --msgBox "$1" 10 90
}
function execute() {
execmd=("$1")
${execmd[@]} # doesn't do anything it seems...
#display_output "${execmd[@]}"
}
function yesno() {
# store command string
cmd=$1
dialog --title "Confirm" \
--backtitle "Confirm command" \
--yesno "$cmd" 7 90
confirm=$?
# actions
case $confirm in
0) execute "$cmd";;
1) break;;
255) break;;
esac
}
function create_share() {
...
if [ $cancelled = "no" ]; then
case $1 in
PUBW) yesno "net usershare add \"${VALUES_ARRAY[0]}\" \"${VALUES_ARRAY[1]}\" \"${VALUES_ARRAY[2]}\" Everyone:F guest_ok=y && chmod 777 \"${VALUES_ARRAY[1]}\"";;
PUBR) yesno "net usershare add \"${VALUES_ARRAY[0]}\" \"${VALUES_ARRAY[1]}\" \"${VALUES_ARRAY[2]}\" Everyone:R guest_ok=y";;
PRVW) yesno "net usershare add \"${VALUES_ARRAY[0]}\" \"${VALUES_ARRAY[1]}\" \"${VALUES_ARRAY[2]}\" Everyone:F guest_ok=n && chmod 777 \"${VALUES_ARRAY[1]}\"";;
PRVR) yesno "net usershare add \"${VALUES_ARRAY[0]}\" \"${VALUES_ARRAY[1]}\" \"${VALUES_ARRAY[2]}\" Everyone:R guest_ok=n";;
esac
fi
}
# try out main menu
# the main menu is in an infinite loop
...
在 execute() 中,display_output "${execmd[@]}"
在 msgBox 中以字符串形式正确显示命令。
但是,当我期望它实际执行命令时,${execmd[@]}
似乎没有做任何事情。
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。