bash - 我希望我的脚本从字面上将“$ 1”回显到文件中
问题描述
这是我脚本的一部分
#!/bin/bash
echo "ls /SomeFolder | grep $1 | xargs cat | grep something | grep .txt | awk '{print $2}' | sed 's/;$//';" >> script2.sh
除了 $1 和 $2 之外,这一切都很好地反映在我的脚本中。相反,它输出这些变量的输入,但我希望它从字面上读取“$1”和“$2”。帮助?
解决方案
逃脱它:
echo "ls /SomeFolder | grep \$1 | xargs cat | grep something | grep .txt | awk '{print \$2}' | sed 's/;\$//';" >> script2.sh
引用它:
echo "ls /SomeFolder | grep "'$'"1 | xargs cat | grep something | grep .txt | awk '{print "'$'"2}' | sed 's/;"'$'"//';" >> script2.sh
或像这样:
echo 'ls /SomeFolder | grep $1 | xargs cat | grep something | grep .txt | awk '\''{print $2}'\'' | sed '\''s/;$//'\'';' >> script2.sh
使用此处引用的文档:
cat << 'EOF' >> script2.sh
ls /SomeFolder | grep $1 | xargs cat | grep something | grep .txt | awk '{print $2}' | sed 's/;$//';
EOF
基本上你想防止扩展,即。从字面上看字符串。您可能想阅读bashfaq 引号
推荐阅读
- c# - 使用 WS-security Authentication 用户名使用 WS
- python-3.x - 如何使用表格格式化带有千位分隔符和右对齐的数字
- .net - Windows - 从 TreeView 获取 HWND 以获取 GetScrollInfo?
- ruby-on-rails - 找不到 gem '工头任务 (= 0.8.6)
- go - go模块坏了怎么办
- sql-server - 一个数据库,多个 SQL Server 实例。NTFS 权限问题
- sql - 使用 PL/SQL 函数体返回 SQL 查询
- c++ - Windows.h - GUI 作为 CMD
- python - 使用具有不同长度的逗号分隔字符串的 Pandas str.split
- shared-libraries - LD_PRELOAD 多个相互依赖的库