从文本文件设置参数不起作用

从文本文件设置参数不起作用

这是我的代码。

  #!/bin/bash

  set -- $(cat /home/jeevan/tempzen1.txt)
  zenity "$@"

文件 tempzen1.txt 包含: --list --title FILE-SELECTOR --column serialno。 --列文件 --width 1000 --height 600 --radiolist TRUE "/home/jeevan/veryverylatest"

为什么上面的代码不起作用,而下面的代码却起作用?我只是在我的脚本中编写了 set args 并从同一个脚本中启动了 zenity,然后它就可以工作了,但为什么不从另一个文本文件中呢?

这是我的工作代码:

#!/bin/bash
set -- --list --title "FILE SELECTOR" --column serialno. --column file --width 1000 --height 600 --radiolist TRUE "/home/jeevan/very very latest"
zenity "$@"

答案1

这与您上一个问题完全相同 - 参数$@仅包含一个参数,即--list --title "FILE SELECTOR" --column serialno. --column file --width 1000 --height 600 --radiolist TRUE "/home/jeevan/very very latest"(是的,整个部分是一个参数,包括空格、引号等),而您想要将其拆分并传递多个参数。

解决方案再次是eval使用命令:

set -- "$(cat /home/jeevan/tempzen1.txt)"
eval zenity "$@"

或者直接更好:

eval zenity "$(cat /home/jeevan/tempzen1.txt)"

相关内容