用Bash中的“-”减号可变

如何解决用Bash中的“-”减号可变

| 这太简单了...
FOLDER=\'/home/user/.ssh\'
SSH=\"$FOLDER/local-rsync-key.pub\"
if [ -f \"$SSH\" ]; then
...
看来Bash认为\'-\'为减号信号,并且IF语句始终失败...如何正确编写此变量? 更新: 这是另一个真实的例子: 我正在尝试使用文件名前面的\“-\”重命名文件,例如:\“-0001.jpg \” 但是,我尝试运行的每一句:
for i in *; do mv \"$i\" \"${i//-/}\"; done
要么:
for i in *; do mv \"$i\" \"${i#*-}\"; done
我收到此错误
mv: invalid option -- \'0\'
Try `mv --help\' for more information.
谢谢你的光!     

解决方法

        您在
SSH
赋值之前不应有
$
,只有在使用变量时才需要。没有它,它可以正常工作,如以下脚本所示:
pax> touch abc-xyz

pax> ll a*
-rw-r--r-- 1 pax paxgrp 0 2011-06-24 05:15 abc-xyz

pax> FOLDER=.

pax> $SSH=\"$FOLDER/abc-xyz\"
bash: =./abc-xyz: No such file or directory

pax> SSH=\"$FOLDER/abc-xyz\"

pax> if [ -f \"$SSH\" ]
...> then
...>     echo yes
...> fi
yes

pax> _
    ,        答案是在文件名称(表明它与文件有关)之前,在\“ mv \”或\“ ./ \”之后使用\“-\”(表示没有更多选项)。例如:
for i in *; do mv -- \"$i\" \"${i#*-}\"; done
要么:
for i in *; do mv -- \"$i\" \"./${i#*-}\"; done
    ,        在bash语法中,设置变量时只需使用变量名:
VAR=value
引用变量时,请使用the4ѭ前缀:
echo $VAR
您的代码在试图设置SSH变量的地方有一个美元符号前缀。变量中的破折号应该没问题。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?