shell写俄罗丝方块游戏,设定壁纸自动切换的sh
- 编辑:正版管家婆马报彩图 -shell写俄罗丝方块游戏,设定壁纸自动切换的sh
Ubuntu 设定壁纸自动切换的shell脚本,ubuntushell
进级到Ubuntu14.04后,认为bug的确比12.04少多了。顶上部分职务栏帮助半透明效果,所以一切桌面也看起来美丽了无数。那样的桌面也是值得瞎捣鼓一下的,想到换壁纸,不过没找到设定动态转变壁纸的选项,但手动更正配置文件的法子总是某些,本文的目标也在于此。(以下进度在Ubuntu14上开展,未测验别的版本!)。
从#!/bin/sh开端往下都是真的的源码,直接复制到shell中就可以使用,对了,未有图像分界面也得以玩的呵呵。
原理
右键桌面->校勘桌面背景,如下图所示,在右侧缩略图中富含小石英钟Logo的就代表为动态切换的壁纸:
系统是透过读取这一个文件来扩充动态壁纸切换的:
/usr/share/backgrounds/contest/trusty.xml
文本根本内容如下:
<background>
<starttime>
<year>2014</year>
<month>09</month>
<day>21</day>
<hour>00</hour>
<minute>00</minute>
<second>00</second>
</starttime>
<static>
<duration>300</duration>
<file>/home/kyy/Wallpaper/1019236,106.jpg</file>
</static>
<transition>
<duration>3</duration>
<from>/home/kyy/Wallpaper/1019236,106.jpg</from>
<to>/home/kyy/Wallpaper/1019306,106.jpg</to>
</transition>
<static>
<duration>300</duration>
<file>/home/kyy/Wallpaper/1019306,106.jpg</file>
</static>
<transition>
<duration>3</duration>
<from>/home/kyy/Wallpaper/1019306,106.jpg</from>
<to>/home/kyy/Wallpaper/1082502,106.jpg</to>
</transition>
<static>......
</static>
<transition>......
</transition>
......
</background>
其间static标签内file表示近期图像,duration表示前段时间图像彰显的持续时间
transition标签内from和to分别表示不下一步在这里四个图片之间切换,duration表示过渡时间
so,系统正是基于这几个来进展桌面壁纸动态切换的。可是没切换一回图像就须要写大量代码,大家自然不会脑残到协和手动去写的,那么的,既然实在Linux下,用shell脚本替代人工自然是最合适不过了
#!/bin/sh
aBox0_0=(0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0)
aBox0_1=(0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0)
aBox0_2=(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 -1)
aBox0_3=(0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0)
aBox1_0=(0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0)
aBox1_1=(0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0)
aBox1_2=(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1)
aBox1_3=(0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0)
aBox2_0=(0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0)
aBox2_1=(0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0)
aBox3_0=(0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0)
aBox3_1=(0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0)
aBox4_0=(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 -1)
aBox4_1=(0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0)
aBox5_0=(0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0)
aBox6_0=(0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0)
aBox6_1=(0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0)
aBox6_2=(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1)
aBox6_3=(0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0)
iSumType=7 #方块类型总数
aStyles=(4 4 2 2 2 1 4) #各个种类方块样式数
iOrigoX=10 #显示起始位置x
iOrigoY=5 #显示起始位置y
iMapWidth=12 #方块宽10
iMapHeight=15 #方块高15
iBox_X=0 #方块位置x
iBox_Y=0 #方块位置y
iScore=0 #分数
iLevel=0 #级别
iScoreEachLevle=50 #每升一级需积累分数
#初始化所有背景方块
for((i = 0;i<iMapWidth*iMapHeight;i++))
do
aBoxBg[$i]=0
done
#定义控制信号,挪用信号25~31
iSIG=0 #
iSIG_Rotate=25 #旋转
iSIG_Left=26 #向左移动
iSIG_Right=27 #向右移动
iSIG_Down=28 #向下
iSIG_FallDown=29 #直落到底
iSIG_Exit=30 #退出
iSIG_Pause=31 #暂停
Control()
{
trap "Game_Exit" 2 3 15 $iSIG_Exit
echo -ne " 33[?25l"
SAVEDSTTY=`stty -g`
iDisplayPID=$1
while :
do
read -s -n 1 LINE
iSIG=0
case $LINE in
"A" )
iSIG=$iSIG_Rotate
;;
"B" )
iSIG=$iSIG_Down
;;
"D" )
iSIG=$iSIG_Left
;;
"C" )
iSIG=$iSIG_Right
;;
"")
iSIG=$iSIG_FallDown
;;
p|P)
iSIG=$iSIG_Pause
;;
q|Q )
Game_Exit
;;
esac
[ $iSIG -ne 0 ] && kill -$iSIG $iDisplayPID
done
}
Display()
{
trap "iSIG=$iSIG_Rotate" $iSIG_Rotate
trap "iSIG=$iSIG_Down" $iSIG_Down
trap "iSIG=$iSIG_Left" $iSIG_Left
trap "iSIG=$iSIG_Right" $iSIG_Right
trap "iSIG=$iSIG_FallDown" $iSIG_FallDown
trap "iSIG=$iSIG_Pause" $iSIG_Pause
local iSIGThis i
clear
Draw_info
Create_Box
while :
do
if [ $iSIG -ne $iSIG_Pause ];then
for((i=0;i<20-iLevel;i++))
do
iSIG_Display=$iSIG
iSIG=0
case $iSIG_Display in
$iSIG_Rotate)
Move_Rotate
;;
$iSIG_Down)
Move_Down
;;
$iSIG_Left)
Move_Left
;;
$iSIG_Right)
Move_Right
;;
$iSIG_FallDown)
Move_FallDown
;;
$iSIG_Pause)
iSIG=$iSIG_Pause
break
;;
esac
sleep 0.02
done
Move_Down
fi
done
}
Game_Exit()
{
echo -ne " 33[21;1Hgame overn"
echo -ne " 33[0m 33[?25h"
stty $SAVEDSTTY
kill -9 $iDisplayPID
exit 0
}
Draw_Line()
{
echo -ne " 33[$1;$((iOrigoX))H--====================--" #iOrigoY
}
Draw_Row()
{
local i
for((i=iOrigoY;i<iOrigoY+15;i++))
do
echo -ne " 33[$i;$1H||"
done
}
#显示程序主画面
Draw_info()
{
echo -ne " 33[45m"
Draw_Line $((iOrigoY-1))
Draw_Line $((iOrigoY+iMapHeight))
Draw_Row $((iOrigoX)) #iOrigoY+(3*2)-2
Draw_Row $((iOrigoX+2+20)) #iOrigoY+(3*2)+10*2
echo -ne " 33[0m"
echo -ne " 33[$((iOrigoY+8));$((iOrigoX+25))H SCORE"
echo -ne " 33[$((iOrigoY+10));$((iOrigoX+30))H0"
echo -ne " 33[$((iOrigoY+13));$((iOrigoX+25))H LEVEL"
echo -ne " 33[$((iOrigoY+15));$((iOrigoX+30))H0"
}
Draw_Box_Clear()
#把方块隐藏掉
{
local i
for((i=0;i<$((${#aBoxMove[*]}-1));i++))
do
[ ${aBoxMove[$i]} -ne 0 ] && echo -ne " 33[$(((i/12)+iBox_Y+iOrigoY));$((((i%12)*2)+iOrigoX))H "
done
}
Draw_Box_New()
#显示方块
{
local i
for((i=0;i<$((${#aBoxMove[*]}-1));i++))
do
[ ${aBoxMove[$i]} -ne 0 ] && echo -ne " 33[1m 33[${iCurrentColor}m 33[$(((i/12)+iBox_Y+iOrigoY));$((((i%12)*2)+iOrigoX))H[] 33[0m"
done
}
IsBottom()
#检查方块是否下落到底
{
local i
if [ $(($iBox_Y+(${#aBoxMove[*]}/12))) -eq 15 ];then
return 0
fi
iBox_Y=$((iBox_Y+1)) #虚拟下移一行
for((i=0;i<${#aBoxMove[*]};i++))
do
[ $((iBox_Y*12+i)) -lt 0 ] && continue #排除刚开始显示方块时iBox_Y为负的情况
if [ "${aBoxMove[$i]}" == "1" -a "${aBoxBg[$((iBox_Y*12+i))]}" != "0" ];then #触底
iBox_Y=$((iBox_Y-1)) #复原
return 0
fi
done
iBox_Y=$((iBox_Y-1))
return 1
}
Box_Delete()
#消行.计算分数.
{
local i j k line
aLineFull=()
aBoxBgNew=()
line=0
k=0
#检查那些行可以消掉
for((i=0;i<15;i++)) #y
do
for((j=0;j<10;j++))
do
[ ${aBoxBg[$((i*12+1+j))]} -eq 0 ] && break
[ $j -eq 9 ] && aLineFull[$line]=$i && (( line++ ))
done
done
[ $line -eq 0 ] && return 0
#计算分数和级别
iScore=$((iScore+(line*2)-1))
echo -ne " 33[15;$((iOrigoX+30))H${iScore} "
if [[ $((iScore/iScoreEachLevle)) -gt $iLevel && $iLevel -lt 20 ]]
then
(( iLevel++ ))
fi
echo -ne " 33[20;$((iOrigoX+30))H${iLevel} 33[0m"
#重新整理aBoxBg数组
for((i=0;i<15;i++))
do
while [ "$((i+k-line))" == "${aLineFull[$k]}" ] #这里处理连续消除多行
do
(( k++ ))
done
for((j=0;j<12;j++))
do
if [ $i -lt $line ];then
aBoxBgNew[$((i*12+j))]=0
else
aBoxBgNew[$((i*12+j))]=${aBoxBg[$(((i+k-line)*12+j))]}
fi
done
done
#刷新背景
aBoxBg=(${aBoxBgNew[*]})
for((i=0;i<15;i++)) #y
do
for((j=0;j<10;j++))
do
echo -ne " 33[$((i+iOrigoY));$((((j+1)*2)+iOrigoX))H"
if [ ${aBoxBg[$((i*12+1+j))]} -eq 0 ];then
echo " "
else
echo -ne " 33[1m 33[${aBoxBg[$((i*12+1+j))]}m[] 33[0m"
fi
done
done
}
Create_Box()
#显示新方块
{
aBoxMove=()
if [ -z "$iCurrentType" ];then
(( iCurrentType = RANDOM % $iSumType ))
(( iCurrentStyle = RANDOM % ${aStyles[$iCurrentType]} ))
(( iCurrentColor = 41 + RANDOM % 7 ))
else
iCurrentType=$iNewType
iCurrentStyle=$iNewStyle
iCurrentColor=$iNewColor
fi
#iCurrentType=4
#iCurrentStyle=1
aBoxMove=( `eval 'echo ${aBox'$iCurrentType'_'$iCurrentStyle'[*]}'` )
iBox_Y=${aBoxMove[$((${#aBoxMove[*]}-1))]}
iBox_X=0
Draw_Box_New
Random_Box
IsBottom && kill -$iSIG_Exit $PPID
}
Random_Box()
#随机产生方块并预显示
{
local i
(( iNewType = RANDOM % $iSumType ))
(( iNewStyle = RANDOM % ${aStyles[$iNewType]} ))
(( iNewColor = 41 + RANDOM % 7 ))
#抹掉原显示
for((i=0;i<${#aBoxMove[*]};i++))
do
if [ ${aBoxMove[$i]} -eq 1 ];then
echo -ne " 33[$(($i/12+iOrigoY));$((($i%12)*2+iOrigoX+20))H "
fi
done
#预显示新方块
aBoxNEW=( `eval 'echo ${aBox'$iNewType'_'$iNewStyle'[*]}'` )
for((i=0;i<${#aBoxNEW[*]};i++))
do
if [ ${aBoxNEW[$i]} -eq 1 ];then
echo -ne " 33[1m 33[${iNewColor}m 33[$(($i/12+iOrigoY));$((($i%12)*2+iOrigoX+20))H[] 33[0m"
fi
done
}
Move_Left()
{
local i
#判断是否碰墙
for((i=0;i<$((${#aBoxMove[*]}/12));i++))
do
[ ${aBoxMove[$((i*12+1))]} -eq 1 ] && return 0
done
#判断是否碰背景
for((i=0;i<${#aBoxMove[*]};i++))
do
[ $((iBox_Y*12+i)) -le 0 ] && continue #排除刚开始显示方块时iBox_Y为负的情况
[ ${aBoxMove[$i]} -eq 1 -a ${aBoxBg[$((iBox_Y*12+i-1))]} -ne 0 ] && return 0 #触底
done
#清除原显示
Draw_Box_Clear
for((i=0;i<$((${#aBoxMove[*]}-2));i++))
do
aBoxMove[$i]=${aBoxMove[$((i+1))]}
done
#重新显示方块
Draw_Box_New
iBox_X=$((iBox_X-1))
}
Move_Right()
#右移
{
local i
#判断是否碰墙
for((i=0;i<$((${#aBoxMove[*]}/12));i++))
do
[ ${aBoxMove[$((i*12+10))]} -eq 1 ] && return 0
done
#判断是否碰背景
for((i=0;i<${#aBoxMove[*]};i++))
do
[ $((iBox_Y*12+i)) -lt 0 ] && continue #排除刚开始显示方块时iBox_Y为负的情况
[ "${aBoxMove[$i]}" == "1" -a "${aBoxBg[$((iBox_Y*12+i+1))]}" != "0" ] && return 0 #触底
done
#清除原显示
Draw_Box_Clear
for((i=$((${#aBoxMove[*]}-2));i>0;i--))
do
aBoxMove[$i]=${aBoxMove[$((i-1))]}
done
#重新显示方块
Draw_Box_New
iBox_X=$((iBox_X+1))
}
Move_Down()
#下落一格
{
local i
if ! IsBottom #返回0则表示底部
then
Draw_Box_Clear
iBox_Y=$((iBox_Y+1))
#画新方块
Draw_Box_New
else
# 把当前方块移到背景 (把方块位置的背景设置为颜色数)(注:0为空)
for((i=0;i<${#aBoxMove[*]};i++))
do
if [ ${aBoxMove[$i]} -eq 1 ];then
aBoxBg[$((iBox_Y*12+i))]=$iCurrentColor
fi
done
Box_Delete
Create_Box
fi
}
Move_FallDown()
#直落到底
{
local i
Draw_Box_Clear
for((i=0;i<15;i++))
do
if ! IsBottom
then
iBox_Y=$((iBox_Y+1))
else
break
fi
done
Draw_Box_New
Move_Down
}
Move_Rotate()
#当前style跳转到下一style ,x位移量根据iBox_X位置决定
{
local i
[ ${aStyles[$iCurrentType]} -eq 1 ] && return 0 #只有一种类型的不处理
[ $iBox_Y -lt 0 ] && return 0 #iBox_Y<0不处理
sRotateStyle=$(((iCurrentStyle+1)%${aStyles[$iCurrentType]}))
aBoxRotate=( `eval 'echo ${aBox'$iCurrentType'_'$sRotateStyle'[*]}'` )
#先根据iBox_X作左右移位处理,把重新赋值aBoxRotate/aBoxMove
if [ $iBox_X -gt 0 ];then #右移
for((i=$((${#aBoxRotate[*]}-2));i>=iBox_X;i--)) #原数组末尾增加了一位数记录起始位置,所以这里要减2
do
aBoxRotate[$i]=${aBoxRotate[$((i-iBox_X))]}
done
for((i=0;i<iBox_X;i++))
do
aBoxRotate[$i]=0
done
else #左移
for((i=0;i<$((${#aBoxRotate[*]}+$iBox_X-2));i++))
do
aBoxRotate[$i]=${aBoxRotate[$((i-iBox_X))]}
done
for((i=$((${#aBoxRotate[*]}+$iBox_X-2));i<$((${#aBoxRotate[*]}-1));i++))
do
aBoxRotate[$i]=0
done
fi
#判断旋转后是否能放得下
#1.判断是否碰墙
for((i=0;i<$((${#aBoxRotate[*]}/12));i++))
do
[ ${aBoxRotate[$((i*12))]} -eq 1 ] && return 0
[ ${aBoxRotate[$((i*12+11))]} -eq 1 ] && return 0
done
#2.判断是否触底
[ $(($iBox_Y+(${#aBoxRotate[*]}/12))) -gt 15 ] && return 0 #旋转后触底
for((i=0;i<${#aBoxRotate[*]};i++))
do
#set -xv
[ $((iBox_Y*12+i)) -lt 0 ] && continue #排除刚开始显示方块时iBox_Y为负的情况
[ "${aBoxRotate[$i]}" == "1" -a "${aBoxBg[$((iBox_Y*12+i))]}" != "0" ] && return 0 #触底
#set +xv
done
#可以旋转,消除原方块,显示新方块
Draw_Box_Clear
aBoxMove=()
aBoxMove=(${aBoxRotate[*]})
iCurrentStyle=$sRotateStyle
aBoxRotate=()
Draw_Box_New
}
#主程序从这里开始
if [ "$1" != "display" ]
then
bash $0 display&
Control $!
exit
else
Display
exit
fi
shell脚本达成
1 #!/bin/bash
2
3 #可用文件后缀名列表
4 readonly prefixs=("jpg" "jpeg" "png" "bmp")
5
6 #动态背景文件地址
7 #/usr/share/backgrounds/contest/trusty.xml
8 readonly animate_background_file_path="/usr/share/backgrounds/contest/trusty.xml"
9
10 #文件列表索引
11 index=0
12
13 #获取图像文件列表
14 get_image_files(){
15
16 #获取文件所在目录名称
17 base_dir="`dirname $1`/`basename $1`/"
18
19 for f in `ls $1`
20 do
21 #检查文件后缀
22 for p in "${prefixs[@]}"
23 do
24 len_before=${#f}
25 f_after=${f%"$p"}
26 len_after=${#f_after}
27
28 #名称发生改变,说明后缀名称符合条件
29 if [ $len_before -ne $len_after ]
30 then
31 file_list[$index]="$base_dir$f"
32 echo "获取图像:$base_dir$f"
33 let index=$index+1
34 break
35 fi
36 done
37 done
38
39 }
40
41
42 #写入文件
43 replae_file(){
44
45 #创建临时文件
46 animate_back="animate_back.xml"
47 #清空文本内容
48 cat /dev/null > $animate_back
49
50 echo -e "<background>" >> $animate_back
51 echo -e "t<starttime>" >> $animate_back
52 echo -e "tt<year>$(date +%Y)</year>" >> $animate_back
53 echo -e "tt<month>$(date +%m)</month>" >> $animate_back
54 echo -e "tt<day>$(date +%d)</day>" >> $animate_back
55 echo -e "tt<hour>00</hour>" >> $animate_back
56 echo -e "tt<minute>00</minute>" >> $animate_back
57 echo -e "tt<second>00</second>" >> $animate_back
58 echo -e "t</starttime>" >> $animate_back
59
60 #写入文件名称
61 index_=0
62 len=${#file_list[@]}
63 for f in "${file_list[@]}"
64 do
65 if [ $index_ -eq $((len-1)) ]
66 then
67 fn=${file_list[0]}
68 else
69 fn=${file_list[$index_+1]}
70 fi
71
72 echo -e "t<static>" >> $animate_back
73 echo -e "tt<duration>${STAY:=300}</duration>" >> $animate_back
74 echo -e "tt<file>$f</file>" >> $animate_back
75 echo -e "t</static>" >> $animate_back
76 echo -e "t<transition>" >> $animate_back
77 echo -e "tt<duration>${DURATION:=3}</duration>" >> $animate_back
78 echo -e "tt<from>$f</from>" >> $animate_back
79 echo -e "tt<to>$fn</to>" >> $animate_back
80 echo -e "t</transition>" >> $animate_back
81
82 let index_=$index_+1
83 done
84
85 echo -e "</background>" >> $animate_back
86
87 #移动文件
88 mv $animate_back $animate_background_file_path
89 if [ $? -eq 0 ]
90 then
91 echo -e "已经设定好文件"
92 fi
93
94 }
95
96 help(){
97 echo
98 echo "命令格式:`basename $0` [OPTION] -f Filepath"
99 echo "指定图片目录,目录下的图片将作为动态更换的壁纸"
100 echo
101 echo -e "-f[Filepath]t 图像文件目录"
102 echo -e "-d[Duration]t 图像切换时长,默认3s"
103 echo -e "-s[StayTime]t 图像停留时长,默认300s"
104 echo
105 exit 1
106 }
107
108
109 #处理参数
110 while getopts f:s:d: OPTION
111 do
112 case "$OPTION" in
113 f)
114 FILE_PATH="$OPTARG"
115 ;;
116 s)
117 STAY="$OPTARG"
118 ;;
119 d)
120 DURATION="$OPTARG"
121 ;;
122 *)
123 help
124 ;;
125 esac
126 done
127
128 if [ -z "$FILE_PATH" ]
129 then
130 help
131 fi
132
133
134
135 #判断目录是是否存在
136 if [ -d $FILE_PATH ]
137 then
138 #获取到文件列表
139 get_image_files $FILE_PATH
140
141 #获取文件数目
142 file_count=${#file_list[@]}
143
144 if [ $file_count -gt 0 ]
145 then
146 #替换原有动态背景文件
147 echo "共获取到$file_count个图像文件"
148 replae_file
149 else
150 echo "目录$FILE_PATH下不存在符合要求的图像文件:${prefixs[*]}"
151 fi
152
153
154 else
155 echo "不存在目录:$FILE_PATH"
156 fi
157
158
159 exit 0
#----------------------------------------------------------------------------
在ubuntu窗户里,要到这里工夫够生出一个 shell程序/脚本?
在ubuntu桌面左上角 ,应用程序/附属类小零器件/终端,展开终端后敲
gedit test.sh (本人取个名字,这里本身用test卡塔尔(英语:State of Qatar)
会弹出一个像样windows里记事本相同的窗口,将代码复制进去,
#!/usr/bin/sh
echo "Hello "`whoami`
。。。。。。
echo 'no this num!'
fi
done
然后直接关闭,会提醒您保存。
然后继续在终端下
bash test.sh 回车,实施后,不要关闭终端。按钮盘上的print
screen截屏开关,会将最近荧屏截成二个图纸,保存地方就放在桌面上好了,注意数十次截图文件名不要覆盖了。
下一场将图片或通过u盘,大概直接复制到windows系统所在分区,转移走。
然后步向windows系统,张开那多个图片,粘贴到word里,只怕用windows的图案工具放大用矩形再截一下。
(基本操作应该正是那么了,只是一点没反映出linux的优良性。ubuntu10.04版是吧,空中楼阁10.03版。楼主借使像学linux能够从bash脚本,vim编辑器从前学起。)
ubuntu 下举办shell脚本的主题素材
诶!你还要去精粹去玩一下Linux(不要用图形系统),你问的那么些标题,真倒霉解释
1,chmod +x test.sh:将test.sh产生可实行权限。
2,test.sh 第风度翩翩行有"#!/bin/sh” 告诉解释器在如何地方。
3,第一步test.sh形成可推行了,./test.sh(运维当前目录下三个可实践文件,那是二个shell脚本,须求解释器,即便有"#!/bin/sh”通过sh解释,若无会报错没这么些命令卡塔尔国。
4,./test.sh(第三步笔者以表明如何意思卡塔尔;运营test.sh(将同过path路线去找这几个命令,显明那几个tesh.sh那些文件不在你path路线下,你怎可以运营吧)。
5,sh
test.sh(sh在/bin目录下相当于曾经倘若path路线,用sh命令解释你那么些本子卡塔尔
设定壁纸自动切换的shell脚本,ubuntushell 升级到Ubuntu14.04后,认为bug的确比12.04少多了。顶上部分任务栏襄助半晶莹剔透效果,所以总体桌面也看...
正文出自 “history_xcy” 博客,请必需保留此出处
#!/bin/sh最初往下都是真的的源码,直接复制到shell中就足以运用,对了,未有图像分界面也能够玩的呵呵。 #!/bin/shaBox0_0=(0 0 0 0 0 0 1 0 0 0...
本文由关于计算机发布,转载请注明来源:shell写俄罗丝方块游戏,设定壁纸自动切换的sh