是否有任何需要在Bash中转义的完整字符列表?可以用它来检查sed吗?
特别是,我正在检查是否%需要转义.我试过了
echo "h%h" | sed 's/%/i/g'
Run Code Online (Sandbox Code Playgroud)
工作得很好,没有逃脱%.这是否意味着%不需要逃脱?这是检查必要性的好方法吗?
而更普遍的:它们是相同的字符,以逃避shell和bash?
有人能告诉我是否应该在shell脚本中包含变量的引号?
例如,以下是正确的:
xdg-open $URL
[ $? -eq 2 ]
Run Code Online (Sandbox Code Playgroud)
要么
xdg-open "$URL"
[ "$?" -eq "2" ]
Run Code Online (Sandbox Code Playgroud)
如果是这样,为什么?
我在bash脚本中尝试了以下各种形式:
#!/bin/bash
svn diff $@ --diff-cmd /usr/bin/diff -x "-y -w -p -W $COLUMNS"
Run Code Online (Sandbox Code Playgroud)
但我无法获得正确扩展COLUMNS环境变量的语法.
我尝试了以下各种形式:
svn diff $@ --diff-cmd /usr/bin/diff -x '-y -w -p -W $COLUMNS'
Run Code Online (Sandbox Code Playgroud)
和
svn diff $@ --diff-cmd /usr/bin/diff -x '-y -w -p -W ${COLUMNS}'
Run Code Online (Sandbox Code Playgroud)
和
eval svn diff $@ --diff-cmd /usr/bin/diff -x "-y -w -p -W $COLUMNS"
Run Code Online (Sandbox Code Playgroud)
建议?
我有一个Bash脚本,我想在传递的参数中保留引号.
例:
./test.sh this is "some test"
Run Code Online (Sandbox Code Playgroud)
然后我想使用这些参数,并重用它们,包括整个参数列表的引号和引号.
我尝试使用\"$@\",但删除了列表中的引号.
我该如何做到这一点?
我正在尝试从 GitHub 操作的拉取请求中插入常规评论。我似乎无法正确理解。Octokit 是底层库,允许您为PR创建reviewComments,但那些指的是提交,这不是我想要的,我想要一个简单的评论。我想我可以只使用octokit.issues.createComment. 但是,这似乎不起作用。这是代码
import * as core from '@actions/core';
const {GitHub, context} = require('@actions/github')
const parse = require('parse-diff')
async function run() {
try {
// get information on everything
const token = core.getInput('github-token', {required: true})
const github = new GitHub(token, {} )
console.log( context )
const PR_number = context.payload.pull_request.number
// Check if the body contains required string
const bodyContains = core.getInput('bodyContains')
if ( context.payload.pull_request.body.indexOf( bodyContains) < 0 ) {
core.setFailed("The body of the …Run Code Online (Sandbox Code Playgroud) 我需要使用如下语法运行命令:
runuser -l userNameHere -c '/path/to/command arg1 arg2'
不幸的是,我必须'在命令本身中嵌入其他字符,我不能告诉bash正确解释它们.我想要运行的命令实际上是:
runuser -l miner -c 'screen -S Mine -p 0 -X eval 'stuff "pwd"\015''
不幸的是,bash似乎正在击中第二个'并且呕吐.这是错误:
-bash: screen -S Mine -p 0 -X eval stuff: No such file or directory,显然它没有超越'.
如何将其作为一个命令嵌套?谢谢!
我正在尝试传递不记名令牌(变量 $token)以通过curl 命令调用作业。但是 -H 之后的单引号不允许变量 $token 的值传递给curl 命令。
curl -X POST 'https://server.domain.com/v2/jobs/28723316-9373-44ba-9229-7c796f21b099/runs?project_id=aff59748-260a-476e-9578-b4f4a93e7a92' -H 'Content-Type: application/json' -H 'Authorization: Bearer $token -d { "job_run": {} }'
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
{“code”:400,“error”:“错误请求”,“reason”:“承载令牌格式无效。预期:'Bearer'。收到:'Bearer $token -d {“job_run”:{} }' .","message":"承载令牌无效。"}
我尝试使用变量 $token 添加转义字符:
curl -X POST 'https://server.domain.com/v2/jobs/28723316-9373-44ba-9229-7c796f21b099/runs?project_id=aff59748-260a-476e-9578-b4f4a93e7a92' -H 'Content-Type: application/json' -H 'Authorization: Bearer "\$token\" -d { "job_run": {} }'
Run Code Online (Sandbox Code Playgroud)
我收到相同的错误:{“code”:400,“error”:“错误请求”,“reason”:“承载令牌格式无效。预期:'承载'。收到:'承载“\ $令牌\” - d { "job_run": {} }'.","message":"承载令牌无效。"}
我也尝试了双引号,已经几个小时了,我无法提取单引号内的变量值 $token。
有人可以帮忙并给我正确的语法吗?
提前致谢
我正在尝试编写一个示例脚本,在其中生成“student-101...student-160”等名称。我需要发布 JSON 数据,当我这样做时,我收到 JSON 解析错误。
这是我的脚本:
name="student-10"
for i in {1..1}
do
r_name=$name$i
echo $r_name
curl -i -H 'Authorization: token <token>' -d '{"name": $r_name, "private": true}' "<URL>" >> create_repos_1.txt
echo created $r_name
done
Run Code Online (Sandbox Code Playgroud)
我总是收到"Problems parsing JSON"错误。我尝试过各种引号组合等,但似乎没有任何效果!
我究竟做错了什么?
如果我在本地命令行中使用 grep 和 sort 等执行 find 命令,我会得到如下返回的行:
# find ~/logs/ -iname 'status' | xargs grep 'last seen' | sort --field-separator=: -k 4 -g
0:0:line:1
0:0:line:2
0:0:line:3
Run Code Online (Sandbox Code Playgroud)
如果我通过 ssh 执行相同的命令,则返回的文本将不带换行符打印,如下所示:
# VARcmdChk="$(ssh ${VARuser}@${VARserver} "find ~/logs/ -iname 'status' | xargs grep 'last seen' | sort --field-separator=: -k 4 -g")"
# echo ${VARcmdChk}
0:0:line:1 0:0:line:2 0:0:line:3
Run Code Online (Sandbox Code Playgroud)
我试图理解为什么 ssh 正在清理返回的文本,以便将换行符转换为空格。我还没有尝试输出到文件,然后使用 scp 将其拉回来。似乎很浪费,因为我只想在本地查看远程结果。
bash ×9
quotes ×5
linux ×3
shell ×3
curl ×2
github ×2
unix ×2
command-line ×1
environment ×1
escaping ×1
github-api ×1
gnu-screen ×1
json ×1
opensuse ×1
ssh ×1
syntax ×1