php+运行shell脚本文件路径_shell脚本实现打印脚本自身的文件名及路径 - CSDN
精华内容
参与话题
  • shell 脚本中,通常会使用相对路径来做处理,但有时候,我们也许需要用到绝对路径。 在shell怎么获取一个文件或目录的绝对路径呢? 也许你会立马想到realpath(如果你写过php的话),那么shell支持这个命令吗?看...

    shell 脚本中,通常会使用相对路径来做处理,但有时候,我们也许需要用到绝对路径。
    在shell怎么获取一个文件或目录的绝对路径呢?
    也许你会立马想到realpath(如果你写过php的话),那么shell支持这个命令吗?看一下这里你就知道了。
    Realpath appears to come from debian, and is not part of coreutils,Realpath appears not to be standard issue.
    这个命令并不是总是可用的。 其实我们可以使用readlink命令:readlink -f  file_path
    file_real_path=$(readlink -f .)    获取当前的真实路径
    file_real_path=$(readlink -f ../..)    获取上上一级的真实路径
    这样就可以获得文件的绝对路径了,readlink的具体用法请自行man readlink!

    Readlink对于softlink的处理拿到的是实际的文件路径,而不是softlink路径。

    更好用的获取当前执行脚本的路径的方法为: 

    CURDIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd )

    echo $CURDIR 


    其他的常用路径有:

    获取当前执行脚本的路径 
    filepath=$(cd "$(dirname "$0")"; pwd) 

    echo "$(basename $0) $(dirname $0) -- $filepath " 
    脚本文件的绝对路径存在了环境变量filepath中,可以用echo $filepath  


    $0: 获取当前脚本的名称 
    $#: 传递给脚本的参数个数 
    $$: shell脚本的进程号



    展开全文
  • Centos7下shell脚本添加开机自启动

    万次阅读 2018-07-20 10:24:55
    添加开机自启脚本,注意都需要用绝对路径 psubscribe.sh脚本中的内容: nohup /usr/bin/php -f /data/aliyun51015...1、赋予脚本可执行权限(/opt/script/psubscribe.sh是你的脚本路径) # chmod ...

    添加开机自启脚本,注意都需要用绝对路径

    psubscribe.sh脚本中的内容:

    nohup /usr/bin/php -f /data/aliyun51015cn/redisChannel/psubscribe.php > psubscribe.log &

     

    1、赋予脚本可执行权限(/opt/script/psubscribe.sh是你的脚本路径)

    # chmod 777 /data/aliyun51015cn/redisChannel/psubscribe.sh

    2、打开/etc/rc.d/rc.local文件,在末尾增加如下内容

    # echo "/data/aliyun51015cn/redisChannel/psubscribe.sh" >> /etc/rc.d/rc.local

    3、在centos7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限

    # chmod +x /etc/rc.d/rc.local

    展开全文
  • php利用sudo权限执行shell脚本

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

    php作为一门服务器端脚本语言,也是可以调用系统命令的,这其中就包括了执行shell脚本


    编写test.sh脚本如下

    #! /bin/sh
    
    mkdir /www/a
    

    很简单的一个shell脚本 创建一个文件夹


    php脚本如下

    system('/usr/bin/test.sh')


    在运行前 首先需要验证的

    1.test.sh脚本是否具有可执行权限

    2.apache nginx phttp等web服务器是否有test.sh的权限

    3.由于是同步文件命令 所以需要确保用户对要下载的目录有写入权限

    4.由于我使用php版本高于5.4,已经删除了安全模式一说,说一也不存在运行在安全模式下

    5.执行的脚本请使用绝对路径 这点很重要


    但是  实际运行后  我发现输出了faild  说明脚本并没有执行成功  查了下原因  是因为apache用户不具备某些目录的执行权限(没个用户有没个用户的可执行目录,你的脚本需要在该目录下)   切换目录属主容易造成安全问题  在linux下 root用户是不受此限制的 所以 临时让用户可以切换到root权限 既可以简单的规避此类问题  如何操作呢?


    首先 查看你的apache用户或者nginx php-fpm用户

    可以使用 ps -ef  | grep httpd 命令来查看  其他同理

    经查我的apache用户为_www用户


    然后 visudo   或者 vim /etc/sudoers 找到

    ## Allow root to run any commands anywhere

    root    ALL=(ALL)       ALL这一行 在下边追加

    _www ALL=(root)  NOPASSWD:ALL

    第一列是用户  第二个是可以切换到的用户 我这里写的是root  如果你想让随意切换可以在这里写All  第三个是可以执行的脚本路径 ALL 表示所有


    最后 重启apache让用户重新获得权限


    修改php脚本

    system('sudo /usr/bin/test.sh')


    运行 执行成功~~~









    展开全文
  • Shell 脚本执行有三种方法:1)bash 脚本名, 2)sh 脚本名, 3)chmod +x 脚本名, 然后 . 脚本名。使用下面语句测试: #a.sh(扩展名可不要) cd / pwd echo "complete" 然而具体执行时候,发现过程中改变过路径,然而...

    转自 <http://www.php100.com/html/webkaifa/Linux/2008/0428/2580.html>


    Shell 脚本执行有三种方法:1)bash 脚本名, 2)sh 脚本名, 3)chmod +x 脚本名, 然后 . 脚本名。使用下面语句测试:

    #a.sh(扩展名可不要)
    cd /
    pwd
    echo "complete"

    然而具体执行时候,发现过程中改变过路径,然而最终结果是并没有改变路径。原因分析:
    执行脚本时候,只是在当前的shell下开了一个子进程,切换目录的操作只对该进程中相关后续指令有效,但改变不了父进程的目录。

    解决方法:
    法一:
    用 source a.sh就行了。
    法二:
    fedora@localhost ~]$ cd ~
    [fedora@localhost ~]$ chmod u+x a.sh
    [fedora@localhost ~]$ . ./a.sh 
    /
    complete
    [fedora@localhost /]$

    对于 $ . ./a.sh
    第一个点是bash的内部命令,表示在当前shell中运行后面的“./a.sh”是命令的参数,即要执行的脚本。
    注:两点之间要有空格。

    展开全文
  • php执行shell脚本

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

    万次阅读 2017-12-26 11:42:10
    Linux上面执行定时任务,我们可以利用crontab -e直接编辑定时任务 另外我们还可以写好shell脚本,定时去执行shell脚本,这两个方法都可以起到定时执行的作用 下面我详细说一下入如何执行shell脚本 1.声明一下我...
  • 什么是Shell

    千次阅读 2018-08-10 21:41:23
    Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。...
  • linux shell脚本获得当前文件路径

    千次阅读 2011-02-10 10:22:00
    php当中获得当前文件路径用:  dirname(__FILE__) 在shell当中没有直接的变量和函数, $(cd "$(dirname "$0")"; pwd)   但是把他用在嵌套脚本时就会发生问题。例如我在脚本a...
  • [shell]shell简介

    万次阅读 2018-07-11 12:02:21
    一、简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核...
  • 常见命令形式: docker exec -it master /bin/bash -c 'echo $PATH' docker exec -it master /bin/bash -c 'cd /...如果shell脚本中涉及到环境变量,或者提示JAVA_HOME is not set,可以在脚本中加上以下命令 ...
  • PHP 常用命令行

    万次阅读 2017-04-13 16:37:51
    1、PHP运行指定文件php -f test.php (-f 可省略) 2、命令行直接运行PHP代码php -r "phpinfo();" 如果结果太长,还可以 php -r “phpinfo();” | less 分页展示3、交互模式运行PHP简单的运算 control + c/z 或者 ...
  • conda : 无法将“conda”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 解决办法: 没有添加系统变量,所以系统根本识别不了conda命令...
  • phpstorm在控制台输出脚本运行结果

    千次阅读 2017-05-27 19:38:46
    1、先打开菜单Run->Edit Configurations选项 ... ...5、选择你要在控制台运行文件 6、填入工作目录的路径(可填可不填),完成配置后点击右下角的OK 7、回到主界面,点击菜单Run->Run...
  • nohup sh inotify3.sh >>333.out &
  • 如何命令行下运行脚本及传递参数

    万次阅读 2017-01-09 20:00:59
    在命令行下运行脚本:window下,假设PHP安装目录为c:\program files\php5\,那么使用命令窗口进入到该路径下,敲入php hello.php回车,则会执行当前路径下的hello.php文件,如果要指向其他路径php文件,可以在...
  • Shell 概述

    千次阅读 2016-08-26 00:29:57
    简介Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这...Shell 脚本Shell 脚本shell sc
  • shell脚本赋值的5种方法

    万次阅读 2012-02-21 12:44:31
    Shell中的环境变量是一类Shell预定义变量,是用于设置系统运行环境的变量,环境变量由系统统一命名。部分系统变量的值由系统设定,部分环境变量的值可以由用户给定。 环境变量的名称由大写字母组成,常用的Shell...
  • shell小记:dirname

    万次阅读 2015-12-15 11:41:11
    shell中,会有以下语句用于获取当前的路径: CURRENT_DIR="$(cd "$(dirname "$0")"; pwd)"其中的 $0表示添加到shell的第0个参数,dirname其实就是获取某个目录或文件路径,例如:
  • 利用php做定时器代码

    千次阅读 2014-11-18 16:44:00
    在 linux下,可以使用crontab + php教程的方法:  1、使用crontab –e编辑定时任务  内容为:  xx:xx:xx 执行一个test.php文件 ... php的执行需要apache的支持,shell脚本的执行需要linux的支持,而li
  • 将Vim编辑器打造成Bash Shell脚本IDE

    千次阅读 2017-05-02 19:59:31
    brew install vim --with-lua --with-override-system-vi安装 Bash-support 插件下载bash-support插件,http://www.vim.org/scripts/script.php?script_id=365,此页面上选择一个最新的。解压缩后copy到~/.vim下面。
1 2 3 4 5 ... 20
收藏数 28,444
精华内容 11,377
关键字:

php+运行shell脚本文件路径