bash - How do I mark only one selection as TRUE in a dynamic zenity radiolist? -


this code have @ moment - finds files have file extension .sv , lists them in zenity radiolist, however, none of items selected. of course, if change awk '{print "false\n"$0}' awk '{print "true\n"$0}' they'll selected, don't want.

test_name=$(     find ../tests/ -name '*.sv' |      awk '{print "false\n"$0}' |     cut -d "/" -f3 |      cut -d "." -f1 |     zenity  --list \             --radiolist \             --title "select test" \             --text "tests..." \             --column "box" \             --column "files" ) #select test via zenity 

how make first item selected, , rest not? know can done using arrays, suggested this question/answer, require more code. there more elegant way of achieving this?

you can amend awk command print "true" if first line processed. can remove cut commands using basename:

test_name=$(     find ../tests/ -name '*.sv' -exec basename {} .sv \; |      awk 'nr==1{print "true\n"$0} nr>1{print "false\n"$0}' |     zenity  --list \             --radiolist \             --title "select test" \             --text "tests..." \             --column "box" \             --column "files" ) #select test via zenity 

you use sed in place of `awk:

sed -e '1itrue' -e '1!ifalse' 

Comments

Popular posts from this blog

windows - Single EXE to Install Python Standalone Executable for Easy Distribution -

c# - Access objects in UserControl from MainWindow in WPF -

javascript - How to name a jQuery function to make a browser's back button work? -