bash - 如何在不解析的情况下在bash中写入文件?
问题描述
尝试在 bash 中编写以下命令时,其中的文件具有可变路径/etc/languagetools/language_tool.sh
:
java -jar /path/to/languagetools/languagetool-commandline.jar "${@:1}"
我在阻止对"${@:1}"
. 执行解析的函数包含:
#!/bin/bash
some_function() {
local create_target_file=$(sudo touch
$LANGUAGE_TOOL_TARGET_DIR/$LANGUAGE_TOOL_CONTROL_SCRIPTNAME)
local make_readable=$(chmod 777 $LANGUAGE_TOOL_TARGET_DIR/$LANGUAGE_TOOL_CONTROL_SCRIPTNAME)
command_one="java -jar
$LANGUAGE_TOOL_TARGET_DIR/$LANGUAGE_TOOL_SNAPSHOT_DIRNAME/$LANGUAGE_TOOL_TARGET_FILENAME "
command_two='${@:1}'
local write_content_to_file=$(sudo sh -c "echo $command_one$command_two > $LANGUAGE_TOOL_TARGET_DIR/$LANGUAGE_TOOL_CONTROL_SCRIPTNAME")
}
返回:
sh: 1: 替换错误
因此,我很好奇,如何在不解析命令内容的情况下将命令字符串写入文件?
解决方案
您不需要命令替换或变量赋值。只是
echo "$command_one$command_two" > "$LANGUAGE_TOOL_TARGET_DIR/$LANGUAGE_TOOL_CONTROL_SCRIPTNAME"
推荐阅读
- node.js - 使用 upsert 执行 insertMany 时出现 BulkWriteError: E11000 duplicate key error collection error
- java - firebase推送通知错误spring boot服务器端
- c# - 如何在 C# 中创建目录并在该目录中插入文件?
- r - 如何在 R 中使用 tmap 将图例放置在构面下方?
- angular-dart - 在角度飞镖中有一种方法可以尽早从“foreach”循环中中断
- html - 为什么透视属性不适用于我的元素?
- amazon-dynamodb - 使用 AND 和 WHERE like 语句查询 DynamoDB 表属性
- reactjs - 调用updateState时如何阻止React网站冻结?
- reactjs - 第 0 行:解析错误:无法读取未定义的属性“地图””-TypeScript 自定义挂钩
- r - R - 组合来自不同网址的数据