51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Linux scrcpy 手机同屏

本文档介绍了使用bash脚本自动安装scrcpy工具,并在安装过程中验证USB调试模式和网络连接。脚本还包含了检测IP地址开放5555端口的功能,以及无线同屏和手机连接的过程。

安装scrcpy {#%E5%AE%89%E8%A3%85scrcpy}

  sudo apt-get update -y && sudo apt install scrcpy adb nmap -y
#!/bin/bash
LANG="zh_CN.UTF-8"
#sudo apt-get autoremove --purge scrcpy -y
key_data="`date +%Y年%m月%d日%H:%M:%S`"
key_title="密码用来保障你么次可以成功起动-scrcpy-[密码错误将直接推出该脚本]"
key=$(zenity --entry --width=500 --height=100 --title="$key_title"  --text="输入密码") || exit
echo "$key" | sudo -S $key_data 2>/dev/null
echo '$key'
install_scrcpy_1="脚本-已经为你安装了-scrcpy"
install_scrcpy_2="提示信息-无法同屏检测网络-多个一样的同屏-查看是否起动了多次该脚本"
if [ ! -f "/bin/scrcpy" ]
then
  sudo apt install scrcpy -y && zenity --info --width=500  --text="$install_scrcpy_1"
else
zenity --info --width=500  --text="$install_scrcpy_2" || exit
fi
while [ true ]
do
/bin/sleep 5
date 
/usr/bin/scrcpy
done
exit 0

这个看不懂了核心代码

/usr/bin/scrcpy --always-on-top --render-expired-frames --window-title "我的手机-$0"

#!/bin/bash
#---Scrcpy--手机同屏验证是否开启USB调试模式-----------------------------------
MY_FIX_DIR="/tmp/MY_AWK_I8520"
if [ ! -d "$MY_FIX_DIR" ]
then
mkdir -p "$MY_FIX_DIR"
fi
rm -rf $MY_FIX_DIR/a123.sh
rm -rf $MY_FIX_DIR/tmpScrcpy.log
x='#!/bin/bash'
a='awk -v initial_line=$1 -v end_line=$2'
a_b=" '{"
b="if (NR >= initial_line && NR <= end_line) "
c='print $0'
d="}' "
d_a='$3'
echo "${x}" >>$MY_FIX_DIR/a123.sh
echo "${a}${a_b}" >>$MY_FIX_DIR/a123.sh
echo "${b}" >>$MY_FIX_DIR/a123.sh
echo "${c}" >>$MY_FIX_DIR/a123.sh
echo "${d}${d_a}" >>$MY_FIX_DIR/a123.sh
chmod -R 750 $MY_FIX_DIR/a123.sh
sh -c '/usr/bin/scrcpy --always-on-top --render-expired-frames --window-title "我的手机-$0"' >> $MY_FIX_DIR/tmpScrcpy.log 
#下面的关系也就不需要了,重新取名了变量名称,Mint保存文档可能有问题,建议多点几次保存。
MY_SCRCPY_YES=$(/tmp/MY_AWK_I8520/a123.sh 1 1 $MY_FIX_DIR/tmpScrcpy.log)
MY_SCRCPY_no(){
/tmp/MY_AWK_I8520/a123.sh 1 1 $MY_FIX_DIR/tmpScrcpy.log
}
MY_SCRCPY_NO=$(MY_SCRCPY_no)
MY_REE_A="error"
MY_REE_B="[100%]"A
if  [ ! $MY_REE_B = ${MY_SCRCPY_NO:5:5}A ];then
     echo "$MY_REE_A"
       else
          echo "OK exit ? 这个不能理解的东西 反正整个脚本起到作用就可以"
fi
`if  [ ! $MY_REE_A = ${MY_SCRCPY_YES:0:6}A ];then
echo "OK"
else
zenity --info --width=370 --height=150 --title="提示错误信息" `
`
--text="\r\r1.是否USB调试模式    2.是否数据线已链接    3.是否文件传输模式"
fi
exit 0`

开启无线同屏幕 {#%E5%BC%80%E5%90%AF%E6%97%A0%E7%BA%BF%E5%90%8C%E5%B1%8F%E5%B9%95}

#!/bin/bash
#安装nmap用于IP端口开放检测
# sudo apt install nmap -y
#----------------------
# 判断输入是否是IP地址,
# 防止输入错误
#----------------------
# 正则表达式,匹配IPv4地址
IP_REGEX='^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'  

while true; do

read -p "请输入一个IP地址: " ip_address

# 使用正则表达式匹配IP地址  
if [[ $ip_address =~ $IP_REGEX ]]; then  
    echo &quot;$ip_address&quot;  
    Nmap_MYip=$(nmap &quot;$ip_address&quot; -p 5555)
    A=&quot;${Nmap_MYip}&quot;
    #如果执行${Nmap_MYip}包含 open 就说明 开启了指定端口
    B=&quot;open&quot;
    if [[ $A == *$B* ]]
    then
        echo &quot;包含&quot;
    else
        #没有开启就在开启
        adb tcpip 5555
    fi
    #链接到 手机
    adb connect $ip_address:5555
    #你安装scrcpy执行程序的路径
    /bin/scrcpy
# 如果IP地址有效,则退出循环 
break   

else
echo &quot;输入的IP地址无效,请重新输入。&quot;
fi

done






赞(2)
未经允许不得转载:工具盒子 » Linux scrcpy 手机同屏