name: "Assignments" cases: - name: "First char is equals sign" ignore_stderr: true stdin: | =x - name: "Basic assignment" stdin: | x=yz echo "x: ${x}" - name: "Invalid variable name" ignore_stderr: true stdin: | @=something - name: "Quoted equals sign" ignore_stderr: true stdin: | x"="3 - name: "Multiple equals signs" stdin: | x=y=z echo "x: ${x}" - name: "Assignment with tilde expansion" env: HOME: /some/dir stdin: | # Basic tilde at start (currently works) var=~/file1.txt echo "~/file1.txt: ${var}" # Tilde after colon in assignment (currently broken - doesn't expand second tilde) var=~/file1.txt:~/file2.txt echo "~/file1.txt:~/file2.txt: ${var}" # Multiple tildes after colons var=~:~/bin:~/local/bin echo "~:~/bin:~/local/bin: ${var}" # Mixed with regular paths PATH=/usr/bin:~:/bin:~/local echo "PATH-like: ${PATH}" - name: "Array assignment with tilde expansion" env: HOME: /testhome stdin: | # Array elements with tildes arr=(~ ~/bin ~root) echo "Array elements:" for i in "${arr[@]}"; do echo " $i" done # Array elements with colon-tilde arr2=(~:~/bin /usr/bin:~) echo "Array with colons:" for i in "${arr2[@]}"; do echo " $i" done - name: "Append assignment with tilde expansion" env: HOME: /testhome stdin: | # Basic append PATH=/usr/bin PATH+=:~ echo "After append tilde: ${PATH}" # Append with colon-tilde PATH=/usr/bin PATH+=:~:~/local echo "After append colon-tilde: ${PATH}"