php shell脚本输出 - CSDN
精华内容
参与话题
  • 调用shell脚本废话少说,用php调用已经有的shell脚本是非常简单的,使用system() 函数就可以具体语法就是**system(“/opt/lampp/file.sh”,a)∗∗,说明下这个a)**,说明下这个 a,就是当shell脚本执行完的结果返回到...

    调用shell脚本

    废话少说,用php调用已经有的shell脚本是非常简单的,使用system() 函数就可以具体语法就是**system(“/opt/lampp/file.sh”,a),a,就是当shell脚本执行完的结果返回到 $a当中去,需要echo 就输出一下。

    生成脚本

    当时做这个完全是懵逼的,参考的就是生成.txt文档的教程。可是很多不符合自己的要求,先说一下我的要求,就是把用户输入的内容 插入到脚本当中然后生成。然后php在调用。由于每次用户输入的ip地址长度不一样,所以需要拼接字符串。下面就是代码:


    展开全文
  • shell命令输出

    2019-08-10 23:17:01
    shell脚本中的打印输出通常会有echo和printf两种,前者会自动换行。 一、echo Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。您可以使用echo实现更复杂的输出格式控制。 1.显示普通字符...

    在shell脚本中的打印输出通常会有echo和printf两种,前者会自动换行。

    一、echo

    Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。您可以使用echo实现更复杂的输出格式控制。

    1.显示普通字符串:

    [root@localhost ~]# echo "It is a test"
    It is a test
    [root@localhost ~]# echo It is a test
    It is a test

     

     2.显示转义字符

    [root@localhost ~]# echo "\"It is a test\""
    "It is a test"

     

    3.显示变量

    [root@localhost ~]# name=”OK”
    [root@localhost ~]# echo “$name It is a test”
    “”OK” It is a test”
    [root@localhost ~]# echo $name It is a test
    ”OK” It is a test
    [root@localhost ~]# 

    以下的转义字符都可在echo中使用

    转义字符

    含义

    \\

    反斜杠

    \a

    警报,响铃

    \b

    退格(删除键)

    \f

    换页(FF),将当前位置移到下页开头

    \n

    换行

    \r

    回车

    \t

    水平制表符(tab键) 

    \v

    垂直制表符

    echo

    -e开启转义

    -E禁止转义,默认也是不转义的

    4、read

    read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量。

    [root@localhost ~]# cat echo_var.sh 
    #!/bin/sh
    read name 
    echo "$name It is a test"
    [root@localhost ~]# chmod 755 echo_var.sh 
    [root@localhost ~]# 
    [root@localhost ~]# ./echo_var.sh 
    var1
    var1 It is a test

     

    5、显示结果定向至文件

    [root@localhost ~]# echo "It is a test" > myfile
    [root@localhost ~]# 
    [root@localhost ~]# cat myfile 
    It is a test

     

    6、原样输出字符串,不进行转义或取变量(用单引号)

    [root@localhost ~]# echo '$name\"'
    $name\"

     

    7、显示命令执行结果

    反引号

    [root@localhost ~]# echo `date`
    Mon Mar 25 22:07:23 CST 2019

     

    二、printf

    printf 命令用于格式化输出,是echo命令的增强版。

    printf 使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串,还可以制定字符串的宽度、左右对齐方式等。默认printf不会像 echo 自动添加换行符,我们可以手动添加换行符\n。

    [root@localhost ~]# echo "Hello, Shell"
    Hello, Shell
    [root@localhost ~]# printf "Hello, Shell\n"
    Hello, Shell

     

    格式替代符:

    %b 相对应的参数被视为含有要被处理的转义序列之字符串。

    %c ASCII字符。显示相对应参数的第一个字符

    %d, %i 十进制整数

    %e, %E, %f 浮点格式

    %g %e或%f转换,看哪一个较短,则删除结尾的零

    %G %E或%f转换,看哪一个较短,则删除结尾的零

    %o 不带正负号的八进制值

    %s 字符串

    %u 不带正负号的十进制值

    %x 不带正负号的十六进制值,使用a至f表示10至15

    %X 不带正负号的十六进制值,使用A至F表示10至15

    %% 字面意义的%

    三、test

    test 命令是Shell环境中测试条件表达式的使用工具,用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。

    1、数值测试

    参数

    说明

    -eq

    等于则为真

    -ne

    不等于则为真

    -gt

    大于则为真

    -ge

    大于等于则为真

    -lt

    小于则为真

    -le

    小于等于则为真

    实例:

    [root@localhost ~]# vi test.sh 
    #!/bin/bash
    num1=100
    num2=100
    if test $[num1] -eq $[num2]
    then
        echo '两个数相等!'
    else
        echo '两个数不相等!'
    fi
    [root@localhost ~]# chmod 755 test.sh 
    [root@localhost ~]# 
    [root@localhost ~]# ./test.sh 
    两个数相等!

     

    2、字符串测试

    参数

    说明

    =

    等于则为真

    !=

    不相等则为真

    -z 字符串

    字符串的长度为零则为真

    -n 字符串

    字符串的长度不为零则为真

    实例:

    [root@localhost ~]# vi test1.sh
    #!/bin/bash
    num1="ru1noob"
    num2="wiki"
    if test $num1 = $num2
    then
        echo '两个字符串相等!'
    else
        echo '两个字符串不相等!'
    fi
    [root@localhost ~]# chmod 755 test1.sh 
    [root@localhost ~]# 
    [root@localhost ~]# ./test1.sh 
    两个字符串不相等!

    3、文件测试

    参数

    说明

    -e 文件名

    如果文件存在则为真

    -r 文件名

    如果文件存在且可读则为真

    -w 文件名

    如果文件存在且可写则为真

    -x 文件名

    如果文件存在且可执行则为真

    -s 文件名

    如果文件存在且至少有一个字符则为真

    -d 文件名

    如果文件存在且为目录则为真

    -f 文件名

    如果文件存在且为普通文件则为真

    -c 文件名

    如果文件存在且为字符型特殊文件则为真

    -b 文件名

    如果文件存在且为块特殊文件则为真

    [root@localhost ~]# vi test2.sh
    #!/bin/bash
    cd /bin
    if test -e ./bash
    then
        echo '文件已存在!'
    else
        echo '文件不存在!'
    fi
    [root@localhost ~]# chmod 755 test2.sh 
    [root@localhost ~]# 
    [root@localhost ~]# ./test2.sh 
    文件已存在!

    4、条件测试

    Shell还提供了与( -a )、或( -o )、非( ! )三个逻辑操作符用于将测试条件连接起来,其优先级为::“!”最高,“-a”次之,“-o”最低。

     实例

    [root@localhost ~]# vi test3.sh
    #!/bin/bash
    cd /bin
    if test -e ./notFile -o -e ./bash
    then
        echo '有一个文件存在!'
    else
        echo '两个文件都不存在'
    fi
    [root@localhost ~]# chmod 755 test3.sh 
    [root@localhost ~]# 
    [root@localhost ~]# ./test3.sh 
    有一个文件存在!

     

    end

    转载于:https://www.cnblogs.com/djlsunshine/p/10592738.html

    展开全文
  • /usr/bin/env php <?php // $argc 表示参数个数,$argv 参数内容 // echo '接收到'.$argc.'个参数'; // print_r($argv); // 这个函数也可以接收参数 $option = getopt('v'); if(isset($option['v'])){ ...
    #!/usr/bin/env php
    <?php
    	// $argc 表示参数个数,$argv 参数内容
    	// echo '接收到'.$argc.'个参数';
    	// print_r($argv);
    	
    	// 这个函数也可以接收参数
    	$option = getopt('v');
    	if(isset($option['v'])){
    		fwrite(STDOUT, "demo版本:v0.0.1\n");
        }
    
    	// STDIN 是输入
    	echo '请确认是否继续(Y/N):'; 
    	$jimmy = fgets(STDIN);
    
    	// STDOUT是输出
        fwrite(STDOUT, "写入数据是:{$jimmy}");
    

    调用:

    $./demo -v
    demo版本:v0.0.1
    请确认是否继续(Y/N):y
    写入数据是:y
    
    展开全文
  • PHP 执行shell 脚本,常见问题

    千次阅读 2018-01-28 15:26:06
    php调用shell脚本 1)exec() 原型: string exec ( string $command [, array &$output [, int &$return_var ] ) 说明: exec执行系统外部命令时不会输出结果,而是返回结果的最后一行。如果想得到结果,可以使用...

    php调用shell脚本

    1)exec()
    原型: string exec ( string $command [, array &$output [, int &$return_var ] )
    说明: exec执行系统外部命令时不会输出结果,而是返回结果的最后一行。如果想得到结果,可以使用第二个参数,让其输出到指定的数组。此数组一个记录代表输出的一行。即如果输出结果有20行,则这个数组就有20条记录,所以如果需要反复输出调用不同系统外部命令的结果,最好在输出每一条系统外部命令结果时清空这个数组unset($output),以防混乱。第三个参数用来取得命令执行的状态码,通常执行成功都是返回0。
    <?php
        exec("dir",$output);
        print_r($output);
    ?>
     
    2)system()
    原型: string system ( string $command [, int &$return_var ] )
    说明: system和exec的区别在于,system在执行系统外部命令时,它执行给定的命令,输出和返回结果。第二个参数是可选的,用来得到命令执行后的状态码。
    <?php
    system("pwd",$result);
    print $result;//输出命令的结果状态码
    ?>
    关于第二个参数结果状态码的简单介绍:
    如果返回0是运行成功,
    在Bash中,当错误发生在致命信号时,bash会返回128+signal number做为返回值。
    如果找不到命令,将会返回127。
    如果命令找到了,但该命令是不可执行的,将返回126。
    除此以外,Bash本身会返回最後一个指令的返回值。
    若是执行中发生错误,将会返回一个非零的值。
    Fatal Signal : 128 + signo
    Can't not find command : 127
    Can't not execute : 126
    Shell script successfully executed : return the last command exit status
    Fatal during execution : return non-zero 


     
    3)passthru()
    原型: void passthru ( string $command [, int &$return_var ] )
    说明: passthru与system的区别,passthru直接将结果输出到游览器,不返回任何值,且其可以输出二进制,比如图像数据。第二个参数可选,是状态码。
    <?php
    header("Content-type:image/gif");
    passthru("/usr/bin/ppm2tiff  /usr/share/tk8.4/demos/images/teapot.ppm");
    ?>
     
    4)shell_exec()
    原型: string shell_exec ( string $cmd )
    说明: 直接执行命令$cmd
    <?php
    $output = shell_exec('ls -lart');
    echo "<pre>$output</pre>";
    ?>

    常见问题:在linux上可以执行php中的shell脚本,但在web端不能够访问:

    解决方法:

    一般属于权限问题,可

    一.vi /etc/sudoers

       加入:xxx ALL=(ALL)  NOPASSWORD:ALL

    二.关闭selinux , 命令:setforence 0

    如有问题可私信我

    展开全文
  • php执行shell脚本

    千次阅读 2019-03-25 16:44:15
    php作为一门服务器端脚本语言,也是可以调用系统命令的,这其中就包括了执行shell脚本 编写test.sh脚本如下 #! /bin/sh mkdir /www/a 很简单的一个shell脚本 创建一个文件夹 php脚本如下 system('/us...
  • shell脚本输出1-1000内的偶数

    千次阅读 2016-06-02 21:13:38
    我们可以通过for循环结合seq来进行使用。 start=0; total=0; for i in $(seq $start 2 1000); do total=$(($total+$i)); done; echo $total;...seq [OPTION]......seq [OPTION]......seq [OPTION]..
  • 收藏!一篇教会你写90%的shell脚本

    万次阅读 多人点赞 2020-08-21 17:25:45
    还不会写shell脚本?这篇文章教会你写90%的shell脚本
  • <p>I have tried the not working command from the shell and it does send the output to the log file, either this way: <pre><code>for i in $(seq --format=%003.f 0 $(( $(ls -1 | wc -l) -1 )) ); do echo ...
  • PHP作为Shell脚本语言使用

    千次阅读 2004-11-20 10:37:00
    PHP作为Shell脚本语言使用 可能很多人都想过使用PHP编写一些定时发信之类的程序,但是却没有办法定时执行PHP;一次去PHPBuilder的时候,发现了这一篇文章,于是想给大家翻译一下(同时做了一些修改),希望对大家...
  • 可使用tee命令suse-linux:/opt/script/shell # cat shutdown_boot.sh#!/bin/shfor ip in `cat ip.txt`dossh $ip <<EOF 2>&1 | tee -a out.logecho "{$ip} shutdown now..."ifconfigmkdir /tmp/t...
  • php异步执行shell脚本

    千次阅读 2017-06-19 14:34:53
    docker.php/** * 跨平台执行脚本 ... * array['status'] 执行状态 0为正常 127 找不到脚本 126没有执行该shell脚本权限 */ function terminal($command) { // system if (function_exists ( 's
  • 一个好的帮助信息对于快速、高效的使用shell脚本是非常有好处的。我们一般通过echo来逐行打印帮助信息,这种方式一个明显的缺点就是需要手动去进行排版,而排版的过程有时十分的繁琐。有没有想过,如果可以像写一般...
  • php利用sudo权限执行shell脚本

    万次阅读 2017-03-17 11:47:30
    php作为一门服务器端脚本语言,也是可以调用系统命令的,这其中就包括了执行shell脚本 最近有一个需求,由于http的表单方式上传文件过慢,需要通过其他方式传输文件,讨论了scp与rsync后 最终决定使用scp工具 编写test....
  • 一些简单的shell脚本实例

    千次阅读 多人点赞 2020-03-13 23:47:17
    # 脚本生成一个 100 以内的随机数,提示用户猜数字,根据用户的输入,提示用户猜对了, # 猜小了或猜大了,直至用户猜对脚本结束。 # RANDOM 为系统自带的系统变量,值为 0‐32767的随机数 # 使用取余算法将随机数变为 1...
  • Linux Shell脚本编程--curl命令详解

    万次阅读 多人点赞 2013-08-25 20:36:14
    用途说明 curl命令是一个功能强大的网络工具,它能够通过http、ftp等方式下载文件,也能够上传文件。其实curl远不止前面所说的那些功能,大家可以通过man curl阅读手册页获取更多的信息。类似的工具还有wget。 ...
  • shell脚本

    千次阅读 2016-12-22 11:20:17
    shell脚本
  • 常用shell脚本

    万次阅读 多人点赞 2019-03-01 16:27:33
    脚本1】打印形状 打印等腰三角形、直角三角形、倒直角三角形、菱形 #!/bin/bash # 等腰三角形 read -p "Please input the length: " n for i in `seq 1 $n` do for ((j=$n;j&gt;i;j--)) do ...
  • 首先php可以写linux的shell脚本,是非常快捷方便的,也展现了php的强大。 (1)讲解头部的一些开头文件代表什么意思。 eg #!/usr/bin/env php #!/usr/bin/php 哎,看了网上的一些说法,说只要平常写#!/usr/...
  • shell脚本telnet登录

    千次阅读 2011-08-27 15:43:34
    #!/bin/bash ( echo "user" sleep 2 echo "passwd" sleep 3 echo "do something in remote device" sleep 3 e
  • Linux shell 脚本编写

    千次阅读 2018-01-30 15:58:23
    知识点回顾: 1、Unix&Linux,GUN,Ubuntu,Red Hat,Fedora。 2、Linux用户管理。 —Root用户,普通用户,用户组。 —useradd,passwd,usermod,finger,sudo(su),groupadd,groups,whoami,who。...
1 2 3 4 5 ... 20
收藏数 28,922
精华内容 11,568
热门标签
关键字:

php shell脚本输出