[英]Bash array as argument inside of screen
以下代码无法正常运行。 我可能是因为我做错了所有事情,但我认为这可能是一个报价问题。
#!/bin/bash
IFS=$'\n'
fortune_lines=($(fortune | fold -w 30))
Screen_Session=$(mainscreen)
Screen_OneLiner=$(screen -p 0 -S ${Screen_Session} -X stuff "`printf "say ${fortune_lines[@]}\r"`")
for var in "${Screen_OneLiner[@]}"
do
echo "${var}"
done
我认为我引用的内容不正确,因为当我尝试执行此操作时。 我知道了
line 5: mainscreen: command not found
[screen is terminating
本质上,我正在尝试添加此功能(有效)
IFS=$'\n'
fortune_lines=($(fortune | fold -w 30))
到此屏幕一班轮
screen -p 0 -S ${Screen_Session} -X stuff "`printf "say ${fortune_lines[@]}\r"`"
然后让它循环数组
for var in "${ArrayName[@]}"
do
echo "${var}"
done
所以我不确定(在代码中)我要去做的事情有多远。 任何帮助都会很棒。
这条线有问题
Screen_Session=$(mainscreen)
您在此处使用命令替换,因此,如果mainscreen
不是有效命令,则会出现command not found
错误。
也许您的意思是使用大括号而不是括号?
由于功能请求将评论标记为答案的请求仍然被拒绝,因此我将上述解决方案复制到此处。
我设法使它起作用... gist.github.com/4006586 – user1787331
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.