我在 shell 脚本中有一行如下所示:
java -jar "$dir/"*.jar
Run Code Online (Sandbox Code Playgroud)
,因为我只想执行该文件夹中碰巧命名的任何 jar 文件。但这并不像我预期的那样工作。我收到错误消息:
Error: Unable to access jarfile [folder-name]/*.jar
Run Code Online (Sandbox Code Playgroud)
它按字面意思使用“*”字符,而不是进行我想要的替换。我该如何解决?
编辑:它现在正在工作。我只是有错误的文件夹前缀:/对于任何想知道的人,这是正确的方法。
我正在尝试编写一个选择查询,该查询应返回用单引号括起来的列值。假设列 (ABC) 有
Values: 123
567
Run Code Online (Sandbox Code Playgroud)
查询应返回
Output: '123'
'567'
Run Code Online (Sandbox Code Playgroud) 我发出一个 curl 命令,理想情况下看起来像这样(请注意,由于缺乏转义,这是不正确的):
curl -X POST --data-urlencode 'payload={"channel": "@somebody", "text": "I'm sending you a test message. Let me know if you get it."}' https://hooks.slack.com/services/XXX
Run Code Online (Sandbox Code Playgroud)
我是单词中的单引号导致此失败。但是,我不确定如何转义此引用,因为有多个级别的嵌套引用。
作为第二个问题,如果文本字符串中有双引号怎么办?那些人怎么可能逃脱?
我已经阅读了有关转义的内容并查看了其他 SO 帖子(包括如何在单引号字符串中转义单引号?),但我似乎无法找到任何可行的解决方案。链接的帖子讨论了单引号中的单引号,并通过使用双引号解决了这个问题。但是,我的单引号已经是双引号了。所以这个比较复杂。
非常感谢你的帮助。
我正在尝试将值返回到我的批处理脚本。在 powershell 中,此脚本运行良好:
PS> (Get-Date -Date "9.04.2017" -Uformat "%w.%Y-%m-%d").Replace("0.", "7.")
7.2017-04-09
Run Code Online (Sandbox Code Playgroud)
当我尝试批量时:
for /f %%a in ('powershell ^(Get-Date -Uformat "%%w.%%Y-%%m-%%d"^).Replace^(^'0.^', ^'7.^'^)') do set datestamp=%%a
echo %datestamp%
Run Code Online (Sandbox Code Playgroud)
我收到错误,但这个脚本工作正常:
for /f %%a in ('powershell ^(get-date^).DayOfWeek') do set weekday=%%a
for /f %%a in ('powershell Get-Date -Uformat "%%u.%weekday%.%%Y-%%m-%%d"') do set datestamp=%%a
echo %datestamp%
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
$ ssh root@123.123.123.123
123.123.123.123# pkill -f "stalled process name"; commands_to_restart; some_more_commands;
many many lines of output demonstrating success
123.123.123.123# exit;
Run Code Online (Sandbox Code Playgroud)
一切正常
$ ssh root@123.123.123.123 "pkill -f "\""stalled process name"\"";"\
> "commands_to_restart; some_more_commands;";
Run Code Online (Sandbox Code Playgroud)
没有输出,什么都不做。
$ ssh root@123.123.123.123 "echo "\""pkill -f "\"\\\"\""stalled process name"\"\\\"\""; "\
> "commands_to_restart; some_more_commands;"\"";";
pkill -f "stalled process name"; commands_to_restart; some_more_commands;
Run Code Online (Sandbox Code Playgroud)
所以......报价转义的两个阶段按预期工作......
如何获得单层引号转义以使用 ssh/bash?由于引用在两层中完美运行,我觉得它与引用的关系不大,而与ssh终端处理的某些方面有关。然而,据我所知,这些命令只对标准输出进行简单和常规的 IO 操作,没有输入。
需要使用 PowerShell 在文档中搜索以下关键字:
[“允许的收购清理期”
$keyword = ""
Get-Content $SourceFileName | Select-String -Pattern $keyword
Run Code Online (Sandbox Code Playgroud)
我正在搜索的字符串中有双引号,所以我在努力如何在这个$keyword.
您好,尝试将以下字符串替换为长字符串:
@x@
Run Code Online (Sandbox Code Playgroud)
使用我从命令行获得的字符串:
read test
sed -i --backup 's/@x@/'${test}'/g' file.json README.md
Run Code Online (Sandbox Code Playgroud)
但它仅适用于1 个单词,如果单词之间有空格则不起作用。即使在引号之间
sed: 1: "s/@x@/string test string: unterminated substitute in regular expression
Run Code Online (Sandbox Code Playgroud) 我正在从Gitlab CI / CD管道的错误信息:yaml invalid。问题是由.gitlab-ci.yml脚本的第五行引起的:
- 'ssh deployer@gitadam.ga \'rm /var/www/html/hosts/production/current/temp__*\''
Run Code Online (Sandbox Code Playgroud)
脚本部分
script:
- 'pwd'
- 'whoami'
- 'ls temp__*'
- 'ssh deployer@gitadam.ga \'rm /var/www/html/hosts/production/current/temp__*\''
- 'if ls temp__* 1> /dev/null 2>&1; then for file in temp__*; do scp $file deployer@gitadam.ga:/var/www/html/hosts/production/current/; done; fi'
Run Code Online (Sandbox Code Playgroud)
线怎么修?
我将以下内容作为参数传递给 powershell(w7 上的 v4):
-debugWrite -fileName SettingsFile -jsonContent { "c": "some setting", "d": "unknown", "b": "some thing", "a": 1 }
Run Code Online (Sandbox Code Playgroud)
但是 PS 被 JSON 挂断了。我试过分隔 \double-quotes\ 并将 -jsonContent 之后的所有内容放在“单引号”中,但无济于事。
这是运行 PS 的 Windows 7 (PS4) 环境:
注意:“...”混淆指的是同一个目录。IOW,所有文件都位于同一目录中。
运行一个批处理文件,开始整个事情:
"C:\...\script.bat" > "C:\...\script-output.txt" 2>&1
Run Code Online (Sandbox Code Playgroud)
这会运行script.bat并输出到script-output.txt. script.bat是一个长的 1-liner:
%WINDIR%\sysnative\windowspowershell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "C:\...\customscript.PS1" --% -fileName DropFileToCreate -jsonContent "{ "c": "some setting", "d": "unknown", "b": "some thing", "a": 1 }" -debugWrite
Run Code Online (Sandbox Code Playgroud)
传奇:
DropFileToCreate - 传递给 PS 脚本的文件名,用于在同一目录中创建文件。
-jsonContent- …
我希望有人能解释为什么测试 1-5 有效但测试 6 没有。我认为用 ' 引用 lambda 并在 lambda 前面使用 #' 都返回指向该函数的指针,唯一的区别是 #' 将首先编译它。
(defun test-1 (y)
(mapcar (lambda (x) (expt x 2))
'(1 2 3)))
(defun test-2 (y)
(mapcar (lambda (x) (expt x y))
'(1 2 3)))
(defun test-3 (y)
(mapcar #'(lambda (x) (expt x 2))
'(1 2 3)))
(defun test-4 (y)
(mapcar #'(lambda (x) (expt x y))
'(1 2 3)))
(defun test-5 (y)
(mapcar '(lambda (x) (expt x 2))
'(1 2 3)))
(defun test-6 (y)
(mapcar '(lambda …Run Code Online (Sandbox Code Playgroud)