【问题标题】:Some problems with Linux-BashLinux-Bash 的一些问题
【发布时间】:2015-11-20 09:30:52
【问题描述】:

我对 linux、bash 等还是很陌生。 我有 2 个问题(目前......)都应该很容易解决。

所有代码示例都是 .sh 文件,并使用 sh file.sh 命令从终端调用

第一件事,为什么我可以添加第一个字符串而不是第二个?在我看来就像是同样的操作......

DIR=$HOME/dir
DIR2=$DIR/test.php
echo $DIR
echo $DIR2

给我这个输出:

/home/vm/dir
/test.phpdir

第二个问题。 我想从 bash 脚本中调用 php-interpreter。

#/home/vm/proj/test.php
<?php
echo __DIR__;

#home/vm/proj/script/script.sh
#! /bin/bash
PATH=$PATH:/$HOME/proj
php -f test.php

但这总是给我一个错误:找不到文件...

所以请帮助一个菜鸟并告诉我修复我的代码......

我可以想象我的两个问题都很容易解决。

谢谢

编辑:

系统:虚拟机:Ubuntu 14.04.3 LTS,Trusty Tahr

Bash 版本:4.3.11(1)-release (x86_64-pc-linux-gnu)

【问题讨论】:

  • 您使用的是什么版本的 sh 和什么 Linux 发行版?我无法重现您的问题,因此可能是特定问题。
  • shbash 不一定相同!请阅读here

标签: php linux bash path


【解决方案1】:

试试:

DIR2="$DIR/test.php"

您可以在 CLI 模式下执行 PHP(甚至在 shell/bash 脚本中),例如:

php /path/to/script.php

顺便说一句,我使用与您相同的设置:)

编辑:

#! /bin/bash
PATH=/path
PATH2="$PATH/to"
PATH3=$PATH2/script.php
echo $PATH3
# Output: /path/to/script.php

EDIT2:

不知道为什么这不适合你。

有关在 bash 中连接变量的更多信息,请参见此处:

How to concatenate string variables in Bash?

请参阅此处了解解决此问题的可能方法:https://unix.stackexchange.com/questions/117467/how-to-permanently-set-environmental-variables

【讨论】:

  • 好的,谢谢您的回复。双引号也不起作用。以后当我尝试在包含中使用相对路径时,路径的问题会很重要,对吗?
  • 嗯,让我考虑一下。我在所有事情中都是绝对路径,所以我真的没有这样的问题,但是我的环境没有改变;)
  • @M4tho 与您所说的内容不符。查看我的更新。
  • 我已经复制了你的行,它给了我“script.php”作为输出。它总是从字符串的开头覆盖。不管我用什么方法。 ;(
  • @M4tho 如果您执行source test.sh 之类的操作会发生什么,它会给您任何信息吗?
猜你喜欢
  • 2012-03-30
  • 1970-01-01
  • 2021-02-25
  • 1970-01-01
  • 1970-01-01
  • 2013-12-06
  • 1970-01-01
  • 2010-11-25
  • 2014-11-14
相关资源
最近更新 更多