如何避免在 cat << 中打印引号
How to avoid printing quotation marks in cat <<
我正在尝试使用 test.sh
:
中的代码生成给定模板的文件
#!/bin/sh
#define parameters which are passed in.
ID=
DIRECTORY=
#define the template.
cat <<EOF
./pgap.py -D singularity -r -o $DIRECTORY/$ID $DIRECTORY/$ID'_input.yaml'
我在最后一行使用了 '
以避免跟在 $ID
变量后面的文本与其混合。但是当 运行ning 代码打印两个 '
。
换句话说,当我 运行:
bash test.sh id dir
我明白了
./pgap.py -D singularity -r -o dir/id dir/id'_input.yaml'
,但我想得到:
./pgap.py -D singularity -r -o dir/id dir/id_input.yaml
替换
$DIRECTORY/$ID'_input.yaml'
和
$DIRECTORY/${ID}_input.yaml
您可以通过将变量名括在花括号中来实现您尝试用单引号做的事情,即 $DIRECTORY/${ID}_input.yaml
我正在尝试使用 test.sh
:
#!/bin/sh
#define parameters which are passed in.
ID=
DIRECTORY=
#define the template.
cat <<EOF
./pgap.py -D singularity -r -o $DIRECTORY/$ID $DIRECTORY/$ID'_input.yaml'
我在最后一行使用了 '
以避免跟在 $ID
变量后面的文本与其混合。但是当 运行ning 代码打印两个 '
。
换句话说,当我 运行:
bash test.sh id dir
我明白了
./pgap.py -D singularity -r -o dir/id dir/id'_input.yaml'
,但我想得到:
./pgap.py -D singularity -r -o dir/id dir/id_input.yaml
替换
$DIRECTORY/$ID'_input.yaml'
和
$DIRECTORY/${ID}_input.yaml
您可以通过将变量名括在花括号中来实现您尝试用单引号做的事情,即 $DIRECTORY/${ID}_input.yaml