我正在尝试编写一个bash脚本来操作从xsel传输的数据.
...
ary=()
while read data; do
echo $data
ary=( "${ary[@]}" "$data" )
done
Run Code Online (Sandbox Code Playgroud)
问题是我打电话时没有看到任何东西:
xsel | myscript.sh
Run Code Online (Sandbox Code Playgroud)
我试过了
echo "testing testing" | myscript.sh
Run Code Online (Sandbox Code Playgroud)
这确实有效,而且我也确保有来自xsel的东西
xsel | festival --tts --pipe
# will read the clipboard string piped from xsel aloud
Run Code Online (Sandbox Code Playgroud)
有什么建议?提前致谢
read如果它无法读取整行,则会失败,并且xsel不会输出换行符.
用以下代替你的循环:
readarray ary # new in Bash 4
Run Code Online (Sandbox Code Playgroud)
如果您只是将数组中的行添加为代理以将所有数据粘贴到变量中,则可以执行以下操作:
input=$(cat)
Run Code Online (Sandbox Code Playgroud)