Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在linux shell脚本中使用#_Shell - Fatal编程技术网

如何在linux shell脚本中使用#

如何在linux shell脚本中使用#,shell,Shell,我知道在shell脚本中使用#将注释行的其余部分 我必须从另一个文件向shell脚本传递一个变量。我使用“导出”来完成此操作。问题是变量的值中有一个#,因此我无法在shell脚本中获取该值 下面给出了我正在使用的脚本 导出文件名=#gclfac*sched$ 正如您所看到的,#位于值的开头,我无法在shell脚本中获取任何内容 如何在shell脚本中传递“#”值而不注释掉行的其余部分?任何帮助都将不胜感激 export FILE_NAME='#gclfac*sched$' 或 要执行的脚本:

我知道在shell脚本中使用#将注释行的其余部分

我必须从另一个文件向shell脚本传递一个变量。我使用“导出”来完成此操作。问题是变量的值中有一个#,因此我无法在shell脚本中获取该值

下面给出了我正在使用的脚本

导出文件名=#gclfac*sched$

正如您所看到的,#位于值的开头,我无法在shell脚本中获取任何内容

如何在shell脚本中传递“#”值而不注释掉行的其余部分?任何帮助都将不胜感激

export FILE_NAME='#gclfac*sched$'

要执行的脚本:

#!/bin/bash
set -x
export FILE_NAME='#jfkslj**23948290$'
echo $FILE_NAME "_ $FILE_NAME"
将其放入test.sh,使其可执行(
chmod+x test.sh
),并作为
/test.sh
运行,并将输出发布到此处。
另外,您的shell是否为bash(如果不是,请在第一个字符串处将she bang[#!/bin/bash]更改为您的shell,并且不要忘记给我们写信)?

将您的作业字符串放在双引号中。所以用你的例子来说就是

FILE_NAME="#gclfac*sched$"
export FILE_NAME

@用户1538033请按照我在答案中添加的说明进行操作。我们将尝试找出答案。使用
#
不一定会注释行的其余部分。考虑<代码>回音Fo.bar条< /代码>。规则很复杂,但大致可以概括为:
#
仅当注释不带引号且前面有空格、分号或管道符号时才指定注释。抱歉@user1538033我忘记了换行符。。。我早些时候匆忙地做了这件事。我已经编辑了上面的原始答案。
FILE_NAME="#gclfac*sched$"
export FILE_NAME