首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当分配给变量时,防止倾斜("~")的bash展开

当分配给变量时,防止倾斜("~")的bash展开
EN

Stack Overflow用户
提问于 2019-07-30 06:32:57
回答 2查看 110关注 0票数 0

我试图通过在bashrc中创建SCP (安全副本)函数来简化我的生活:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scpcloud() {
        CP_STR="$(whoami)@${REMOTE_HOST}:"
        CP_STR+=$1
        CP_STR+=" $2"
        scp $CP_STR
}

理想情况下,我应该能够键入类似scpcloud ~/myfileonremote.png myfileonlocal.png的内容。

但是,在这种用法中出现了一个问题,因为Bash扩展了特殊字符:

scpcloud ~/myfileonremote.png myfileonlocal.png

变成:

kenny@remote.host.com:/Users/kenny/myfileonremote.png myfileonlocal.png

这不是我想要的。我想要将倾斜(和任何其他的Bash字词扩展)字面上发送到远程主机。所以理想情况下,我的命令会变成:

kenny@remote.host.com:~/myfileonremote.png myfileonlocal.png

我试图通过引用下列方法来纠正这一问题:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CP_STR+='$1'
CP_STR+="$1"

都没有用。有什么解决办法可以做到这一点吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-30 06:36:54

不要构建一个字符串(或者至少是一个字符串),并期望分字操作能够正确地将它分解成两个参数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scpcloud() {
    scp "$(whoami)@$REMOTE_HOST:$1" "$2"
}

此外,您需要引用这个倾斜体,因为shell在scpcloud运行之前就扩展了它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scpcloud "~/myfileonremote.png" myfileonlocal.png
票数 1
EN

Stack Overflow用户

发布于 2019-07-30 06:37:12

试着逃离倾斜键。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 scpcloud \~/myfileonremote.png myfileonlocal.png
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57274134

复制
相关文章
设置环境变量时 -bash: export: ` ': not a valid identifier
当修改了环境变量后,执行source /etc/profile生效时,出现以下错误:
院长技术
2020/10/30
8.3K1
bash中的变量
bash中的变量 <span style="display: inline !important;float: none;background-color: transparent;color: rgb(51, 51, 51);font-family: " 0px;"="" sc","helvetica="" pingfang=""> 本文目录 1 局部变量与环境变量 2 设置变量 3 环境变量 局部变量与环境变量 在bash中,变量是一个用来存储数据的实体。每个变量都有一个名称和一个值,名称是变量的
mwangblog
2018/07/04
2.2K0
bash shell参数展开(Shell Parameter Expansion):替换变量(variable)中的字符串
在写bash shell脚本时,如果遇到要替换变量中的字符串,首先想到的就是用sed命令,比如下面的示例将变量str中的数字123替换成UUU:
10km
2021/11/11
3.9K0
bash 的变量和参数
我的 bash 生涯第一坑。bash 中,赋值 = 两边不能有空格。 有空格又会怎样?
IMWeb前端团队
2019/12/04
1.1K0
bash 变量跟随#*=,##*=的含义
今天看项目的某个打包脚本,里面有这么一段写法... 刚看完的时候,我真的一脸茫然~~~
CRPER
2022/03/08
8130
bash 变量跟随#*=,##*=的含义
bash 的变量和参数
本文介绍了bash脚本中的变量和参数,包括环境变量、本地变量、位置变量和特殊变量。还介绍了如何通过命令替换和字符串操作来处理变量和参数。
IMWeb前端团队
2017/12/28
1.5K0
C++栈展开如何防止内存泄露
在栈展开(stack unwinding)是指,如果在一个函数内部抛出异常,而此异常并未在该函数内部被捕捉,就将导致该函数的运行在抛出异常处结束,所有已经分配在栈上的局部变量都要被释放。如果被释放的变量中有指针,而该指针在此前已经用new运算申请了空间,就有可能导致内存泄露。因为栈展开的时候并不会自动对指针变量执行delete(或delete[])操作。
恋喵大鲤鱼
2019/02/22
1.1K0
(24)Bash预定义变量
一、预定义变量 预定义变量 作用 $? 最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确
生信real
2020/08/27
1K0
(23)Bash位置参数变量
位置参数变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的。
生信real
2020/08/26
9010
(22)Bash环境变量
用户自定义变量只在当前的Shell中生效,而环境变量会在当前Shell和这个Shell的所有子Shell当中生效。如果把环境变量写入相应的配置文件,那么这个环境变量就会在所有的Shell中生效。
生信real
2020/08/26
7090
C++栈展开如何防止内存泄露
在栈展开(stack unwinding)是指,如果在一个函数内部抛出异常,而此异常并未在该函数内部被捕捉,就将导致该函数的运行在抛出异常处结束,所有已经分配在栈上的局部变量都要被释放。如果被释放的变量中有指针,而该指针在此前已经用new运算申请了空间,就有可能导致内存泄露。因为栈展开的时候并不会自动对指针变量执行delete(或delete[])操作。
恋喵大鲤鱼
2018/08/03
6770
Bash 环境变量的那些事
bash 变量,尤其是讨厌的环境变量,已经是一个老生常谈的话题了。我们也更应该对它有一个详细的了解,让它为我们所用。
用户8639654
2021/10/18
7550
Bash特殊变量:$0, $#, $*, $@, $?, $$实战
前面已经讲到,变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。 例如,$ 表示当前Shell进程的ID,即pid,看下面的代码:
sunsky
2020/08/20
9670
当使用 jquery 插件操作 input 时同步 vue 中绑定的变量办法
为什么要同步到 vue 上绑定的变量呢,因为如果我们不更新绑定的变量的值,vue 下次刷新组件的时候,就会将旧的值更新到 input 上。
前Thoughtworks-杨焱
2022/02/19
1.7K0
针对 Bash 的不完整路径展开(补全)功能
bash-complete-partial-path 通过添加不完整的路径展开(类似于 Zsh)来增强 Bash(它在 Linux 上,macOS 使用 gnu-sed,Windows 使用 MSYS)中的路径补全。如果你想在 Bash 中使用这个省时特性,而不必切换到 Zsh,它将非常有用。
用户8639654
2021/10/21
1K0
SHELL(bash)脚本编程一:变量
本篇开始,介绍shell脚本编程,更确切的说是bash脚本编程(版本:4.2.46(1)-release)。我们从变量开始。
用户5030870
2019/04/11
2.8K0
(21)Bash用户自定义变量
变量是计算机内存的单元,其中存放的值可以改变。当Shell脚本需要保存一些信息时,如一个文件名或是一个数字,就把它放在一个变量中。每个变量有一个名字,所以很容易引用它。使用变量可以保存有用信息,使系统获知用户相关设置,变量也可以用于保存暂时信息。
生信real
2020/08/26
6760
linux bash环境变量简单总结
一.环境变量简介 Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都 是相同的,这个默认环境实际上就是一组环境变量的定义。 环境变量是全局的,设置好的环境变量可以被所有当前用户所运行的程序所使用。 用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。 常见的环境变量: PATH: 决定了shell将到哪些目录中寻找命令或程序 ROOTPATH: 这个变量的功能和PATH相同,但
小小科
2018/05/03
1.9K0
当AI泡沫破裂时……
很显然我们目前处于一个不稳定的状态。这到底是一场泡沫还是一次革命?答案是当然包含一点革命——深度神经架构所创造的实实在在的成功已经颠覆了视觉和语音识别领域,更通用的机器学习也已经有了大量真实世界用例。
刀刀老高
2018/07/24
3600
当AI泡沫破裂时……
很显然我们目前处于一个不稳定的状态。这到底是一场泡沫还是一次革命?答案是当然包含一点革命——深度神经架构所创造的实实在在的成功已经颠覆了视觉和语音识别领域,更通用的机器学习也已经有了大量真实世界用例。
机器之心
2018/07/26
3760

相似问题

倾斜展开与变量替代在bash中的结合

22

倾斜前展开变量

21

计算$PATH时的倾斜展开

13

停止bash脚本参数中的倾斜展开

14

Bash变量展开

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文