如何在shell脚本中回显包含路径的文本

时间:2017-04-06 18:07:21

标签: bash shell

我试图将特定文本回显到文件中。但它最终以另一种方式回应它。我无法确定我出错的地方。

我想回应的文字是

export PATH=$PATH:/usr/lib/java/jdk1.8.0_121/bin/

在脚本文件中,我将其设置为

echo "export PATH=$PATH:/usr/lib/java/jdk1.8.0_121/bin/" >> /home/$USER/Desktop/output.txt

但是在output.txt文件中,我得到了

export PATH=/home/lijin/bin:/home/lijin/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/java/jdk1.8.0_121/bin/:/usr/lib/java/jdk1.8.0_121/bin/

我希望将确切的文本回显到文件output.txt

我使用echo,因为我必须附加已经存在的文件内容,然后将其打印到文件中。

2 个答案:

答案 0 :(得分:4)

单引号字符串以避免变量扩展,

echo 'export PATH=$PATH:/usr/lib/java/jdk1.8.0_121/bin/' >> /home/$USER/Desktop/output.txt

它的经验法则,单引号不会扩展bash中的变量,只有双引号就可以了。在变量名称周围使用单引号,剥夺$进行变量插值

答案 1 :(得分:0)

$name = (string)$_GET['name']; 


mysqli_select_db($con,"dbtest");

// sql to create table
$sql = "CREATE TABLE '".$name."' (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";

如果要扩展字符串中的其他变量,则弱引用是一个选项。

例如,你可能想做类似这样的事情

from django.core import serializers

def lesson(request, block_id):
    block_name = Block.objects.get(id=block_id)
    item = Item.objects.filter(item_id=block_id)

    item_json = serializers.serialize('xml', item)

    context = {
        "item_block": block_name,
        "item_json": item_json
    }
    return render_to_response('item_page.html', context)