1.编写制定贰个shell脚本,编写shell脚本

在计算机语言的实际应用中用Python编写shell脚本这一实际应用的过程中是需要相关的函数的,在以下的文章里就会提及这一函数在Python编写shell脚本的具体应用,以下是文章的具体介绍。

1.编写一个shell脚本,编写shell脚本

一、shell和shell脚本

  在linux系统下,以 #/bin/bash开头的文本会被shell解释器进行解释。

   shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

     shell脚本(shell
script),是一种为shell编写的脚本程序。业界所说的shell通常都是指shell脚本,shell和shell
script是两个不同的概念。

  sh、bash等脚本解释器是不同的版本,一路发展。

二、shell的基本功能

1.缩进

  shell脚本不会对编程的缩进有强制要求,这点和以缩进来实现代码界限的python不同。

2.变量

    

 ** **

 

 

一、shell和shell脚本 在linux系统下,以
#/bin/bash开头的文本会被shell解释器进行解释。
shell是指一种应用程…

在Python编写shell脚本中我们经常会用到一些相关的正则表达式以及某些临时文
件)还有操作/etc/passwd文件等等一些相关的文件,以下就是对在gPython编写shell脚本的实际操作中我们所要用到的相关文件的介绍。

一、shell和shell脚本

在实际项目中编写的几个小shell脚本

虽然我受*nix的影响甚深,但是对于*nix里随处可见的sh脚本却是讨厌之极。为什么讨厌呢?首先
是因为sh脚本那莫名其妙的语法,感觉就像随写随扔的程序,完全没有任何美感可言。其次是sh脚本的处理能力还是比较弱的,在文本处理、XML处理还有网
络编程方面,基本上都要借助于perl,awk等一堆程序。

sys.argv是一个列表,保存了python程序的命令行参数。其中sys.argv[0]是程序本身的名字。

  在linux系统下,以
#/bin/bash开头的文本会被shell解释器进行解释。

  • gradle build 启用守护进程,下次编译速度提高

我对这些程序也是不大喜欢的,况且学习第三方软件总要时间,还不如都用python好了。那,python可以做shell脚本吗?
首先介绍一个函数:

  • 用Python生成不依赖dll的exe的操作步骤简
  • 搭建Python Web环境所需要的相关步骤介绍
  • Python入门用Bug修改和.jam文件需要注意
  • 用Python脚本转换成windows的可执行程序
  • 用Python编写shell脚本时经常使用的函数

   shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

os.system(command) 

不能光说不练,接下来我们就编写一个用于复制文件的简单脚本。前两天叫我写脚本的同事有个几万个文件的目录,他想复制这些文件到其它的目录,又不能
直接复制目录本身。他试了一下”cp src/*
dest/”结果报了一个命令行太长的错误,让我对Python编写一个脚本。操起python来:

     shell脚本(shell
script),是一种为shell编写的脚本程序。业界所说的shell通常都是指shell脚本,shell和shell
script是两个不同的概念。

#!bin/sh

./gradlew build --daemon --parallel --offline

echo "enter enyone character"
read character

adb install /Users/bjhl/Desktop/XXTT/xxtt-android/xuexitoutiao/build/outputs/apk/xuexitoutiao-zx-debug.apk

这个函数可以调用shell运行命令行command并且返回它的返回值。试一下在python的解释器里输入os.system(”ls
-l”),就可以看到”ls”列出了当前目录下的文件。可以说,通过这个函数,python就拥有了shell的所有能力。不过,通常这条命令不
需要用到。因为shell常用的那些命令在python中通常有对应而且同样简洁的写法。

import sys,os.path,shutil  for f in os.listdir(sys.argv[1]):  shutil.copy(os.path.join(sys.argv[1],f),
sys.argv[2]) 

 
sh、bash等脚本解释器是不同的版本,一路发展。

  • curl 请求链接

shell中最常用的是ls命令,python对应的写法是:os.listdir(dirname),这个函数返回字符串列表,里面是所有的文件名,不过不包含”.”和”..”。如果要遍历整个目录的话就会比较复杂一点。我们等下再说吧。先在解释器里试一下:

再试一下linuxapp版里的帖子——把一个文件夹下的所有文件重命名成10001~10999。可以这样写:

二、shell的基本功能

>>> os.listdir(”/”)  [’tmp’, ‘misc’, ‘opt’, ‘root’, ‘.autorelabel’, 
’sbin’, ’srv’, ‘.autofsck’, ‘mnt’, ‘usr’, ‘var’, 
‘etc’, ’selinux’, ‘lib’, ‘net’, ‘lost+found’, ’sys’,
 ‘media’, ‘dev’, ‘proc’, ‘boot’, ‘home’, ‘bin’] 
import os.path,sys  dirname=sys.argv[1]  i=10001 for f in os.listdir(dirname):  src=os.path.join(dirname,f)  if os.path.isdir(src):  continue  os.rename(src,str(i))  i+=1 

1.缩进

#!/bin/sh
#此脚本是用来使用curl请求链接的
#http://dev-app.*****.com/  dev
#http://app.****.cn/    线上

echo  "enter the request url:(topic/list)"
read url

echo  "enter the request params:(page=*&size=*&channel=**)"
read params


curl -d $params"&sig=****&client={\"appId\":\"****\",\"deviceId\":\"*****\",\"from\":\"**\",\"mac\":\"***\",\"model\":\"androidXT1085\",\"os\":\"android22\",\"version\":\"3\"}" "http://****.com/"$url

就像这样,接下去所有命令都可以在python的解释器里直接运行观看结果。

以上就是对Python编写shell脚本经常要用到相关的正则表达式相关的内容的介绍,望你会有所收获。

  shell脚本不会对编程的缩进有强制要求,这点和以缩进来实现代码界限的python不同。

  • 脚本编译安装启动项目app

对应于cp命令的是:shutil.copy(src,dest),这个函数有两个参数,参数src是指源文件的名字,参数dest则是目标文件或
者目标目录的名字。
如果dest是一个目录名,就会在那个目录下创建一个相同名字的文件。与shutil.copy函数相类似的是
shutil.copy2(src,dest),不过copy2还会复制最后存取时间和最后更新时间。

件)还有操作/etc/passwd文件等等一些相关的文件,以下就是对在…

2.变量

  • Python标准库的强大功能的相关介绍
  • 用Python生成不依赖dll的exe的操作步骤简
  • 搭建Python Web环境所需要的相关步骤介绍
  • Python入门用Bug修改和.jam文件需要注意
  • 用Python脚本转换成windows的可执行程序

    

#!bin/sh
echo $(date +%Y-%m-%d:%H:%M:%S)

source ~/.bash_profile

echo "compiling..."
gradle build

echo "uninstall..."
adb uninstall  com.****.***

echo "install..."
adb install  /Users/bjhl/Desktop/***/**/***/build/outputs/apk/***-debug.apk

echo "start MainActivity..."
adb shell am start -n "com.****.***/com.***.***.MainActivity.java" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
echo $(date +%Y-%m-%d:%H:%M:%S)

不过,shell的cp命令还可以复制目录,python的shutil.copy却不行,第一个参数只能是一个文件。这怎么办?其
实,python还有个shutil.copytree(src,dst[,symlinks])
。参数多了一个symlinks,用Python编写shell脚本是一个布尔值,如果是True的话就创建符号链接。

 ** **

  • 网络请求 包含cookie

移动或者重命名文件和目录呢?估计被聪明的朋友猜到了,shutil.move(src,dst),呵呵。。与mv命令类似,如果src和dst在
同一个文件系统上,shutil.move只是简单改一下名字,如果src和dst在不同的文件系统上,shutil.move会先把src复制到
dst,然后删除src文件。看到现在,大多数朋友应该已经对python的能力有点眉目了。
以上就是对如何用Python编写shell脚本相关的内容的介绍,望你会有所收获。
 

 

 http://www.runoob.com/linux/linux-shell-test.html

#!/bin/sh
echo -n "enter the request host: "
read host # request host

#cookie
echo -n "use cookie ? (y/n)  "
read is_cookie

cookie=""

#if need cookie set
if [[ $is_cookie = "y" ]]; then
echo -n "input the cookie: "
read input_cookie
cookie=$input_cookie
fi

echo -n "need post? (y/n)  "
read tag

#http get if tag = n
if [[ $tag = "n" ]]; then
if [[ $cookie != "" ]]; then
curl $host -b$cookie
else
curl $host
fi
exit 0
fi

#the json data need to post
data=""

#the input value pair
kv_pair=""

while true; do
if [[ $tag = "y" ]]; then
#input key
echo -n "key :  "
read key

# set break condition key = gameover 这里是一个循环结束的标志.输入这个标志表示我需要传递的json数据已经全部写进去了
if [[ $key = "gameover" ]]; then
#complete the json format, %,*  start at right side and romove the first ','
kv_pair=${kv_pair%,*}

#this is the last data to post
data="{"$kv_pair"}"
echo "post data is: $data and exce the curl cmd"
#curl $host -d$data
break;
fi

#encode with ""
key='"'$key'"'

#input value
echo -n "value : "
read value

#encode value with ""
value='"'$value'"'

#set value pair and extends itself
kv_pair="$kv_pair"$key":"$value","
echo "$kv_pair"
fi

done

#do http post
if [[ $cookie != "" ]]; then
curl $host -d$data -b$cookie
else
curl $host -d$data
fi

发表评论

电子邮件地址不会被公开。 必填项已用*标注