如何解决如何避免在 cat << 中打印引号
我正在尝试使用 test.sh
中的此代码在给定模板的情况下生成文件:
#!/bin/sh
#define parameters which are passed in.
ID=$1
DIRECTORY=$2
#define the template.
cat <<EOF
./pgap.py -D singularity -r -o $DIRECTORY/$ID $DIRECTORY/$ID'_input.yaml'
我在最后一行使用了 '
以避免将 $ID
变量后面的文本与其混合。但是在运行代码时会同时打印 '
。
换句话说,当我运行时:
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。