使用 Yad 建立与 NAS 的连接

使用 Yad 建立与 NAS 的连接

到目前为止,我将 PC 连接到 NAS 的尝试只取得了部分成功。首先,要在“yad”下搜索目录。如果它包含文件(真),则达到“已激活”状态并在列中可见。否则应显示“已停用(假)”状态。我已经在网上找到了脚本的一部分。以下代码已经向我显示了选择文件夹后的结果 /home/$USER/xyz,其中“xyz”对应于我的 NAS 上的文件夹。到目前为止,以下代码运行良好。

#!/bin/bash

test -e /tmp/yadpipe03 && rm -f /tmp/yadpipe03

# Named pipe initialization
export PIPE_03=/tmp/yadpipe03
mkfifo $PIPE_03
exec 3<> $PIPE_03

function load_data
{
  DIRS="$(yad --file --multiple --width=800 --height=600 \
         --directory --title="Select folder")"

  OIFS=$IFS
  IFS="|"

  [[ ! -z "$DIRS" ]] && YAD_DATA=($(for DIR in "$DIRS";do echo "$DIR";done ))

  IFS=$OIFS

  for DATA in "${YAD_DATA[@]}";do
      echo True     # Adds "True" for the checklist column
      echo "${DATA}"
  done
}
export -f load_data

function clear_all
{
  echo -e '\f'
}
export -f clear_all

# Main Dialog
Record=($(yad --list --checklist --separator="|" --grid-lines=hor \
    --width=1200 --height=800 --center \
    --title="Set up connections to the NAS" \
    --text="Example" \
    --column "Select" --column "Folder" --column "Status" \
    --button="Add folder!gtk-add":'bash -c "load_data > $PIPE_03"' \
    --button="Activate!gtk-connect":'bash -c "load_data > $PIPE_03"' \
    --button="Deactivate!gtk-disconnect":'bash -c "load_data > $PIPE_03"' \
    --button="Clear!gtk-clear":'bash -c "clear_all > $PIPE_03"' \
    --button="OK!gtk-ok":0 \
    --listen --print-all < $PIPE_03))
Action=$?

echo ${Record[@]}

从结果中 - echo ${Record[@]}- 现在应该过滤文件夹的名称。然后,通过按下“激活”或“停用”按钮,相应的命令(我知道)和状态将使用 case 命令写入文件。如果现在可能,应该在 Yad 窗口中更新状态。最迟下次选择文件夹时,应该提供当前视图。

由于我不是公认的专家,因此我在此寻求帮助。

非常感谢

相关内容