将编写的脚本加入系统路径内,却无法使用的问题

修复脚本执行权限问题
本文介绍了一次尝试将自定义脚本放置于/usr/bin目录以便执行的过程中遇到的问题及解决方案。作者发现脚本无法通过路径被正确调用,进一步排查发现是因为缺少相应的执行权限。通过使用sudo chmod命令为脚本及其符号链接赋予了必要的权限,最终解决了问题。

某日,我想将自己编写的脚本放入/usr/bin目录下,方便执行

命令:

$sudo cp ./**.perl /usr/bin/
$sudo ln -s /usr/bin/**.perl /usr/bin/**

之后在人以路径下,无法tab补全该命令,我猜测是没有给创建的连接符加权限。于是执行:

$sudo chmod 755 /usr/bin/**.perl
$sudo chmod 755 /usr/bin/**


问题解决。。。 好弱智的错误。

### 如何使用 BAT 脚本获取当前工作目录 在 Windows 的批处理脚本 (BAT) 中,可以通过特定变量和命令组合实现对当前工作目录的获取。以下是几种常见方法及其解释: #### 方法一:通过 `%CD%` 变量 `%CD%` 是一个内置环境变量,用于表示当前的工作目录。它可以直接被调用并显示当前 CMD 所处的路径。 ```batch @echo off echo 当前工作目录为:%CD% pause ``` 此方法适用于大多数情况,但在某些特殊场景下可能会返回 `C:\Windows\System32`,而非实际脚本所在位置[^1]。 --- #### 方法二:通过 `%~dp0` 获取脚本所在目录 如果目标是获取运行脚本的实际存储路径,则可以利用 `%~dp0` 参数扩展功能。该参数会解析到执行脚本所在的驱动器号 (`D:` 或其他盘符) 和完整路径字符串。 ```batch @echo off echo 当前脚本所在目录为:%~dp0 pause ``` 需要注意的是,在部分操作系统版本中,默认情况下可能不会切换至脚本所在磁盘分区。因此建议配合 `cd /d %~dp0` 命令一起使用以确保正确跳转到对应目录[^1]。 --- #### 方法三:综合测试多个属性 为了更全面了解不同类型的路径信息,还可以编写如下扩展版脚本来展示更多细节: ```batch @echo off echo 当前盘符: %~d0 echo 当前路径: %~p0 echo 当前盘符和路径: %~dp0 echo 当前批处理(%0文件)全路径: %~f0 echo 当前盘符和路径的短文件名格式: %~sdp0 echo 当前CMD默认目录: %CD% pause ``` 这段代码不仅能够打印常规意义上的“当前位置”,还能提供关于文件本身的额外元数据支持[^2]。 --- #### 特殊需求——获取上级目录 当需要进一步操作父级或更高层目录时,可基于已知的基础路径做适当调整。例如下面的例子演示了如何定位上一层目录的位置: ```batch set scriptDir=%~dp0 set parentDir=%scriptDir:~0,-1% if "%parentDir:~-1%"=="\" set parentDir=%parentDir:~0,-1% echo 上级目录为:%parentDir%\.. pause ``` 这里先定义了一个临时变量保存原始路径值;接着去掉最后多余的反斜杠字符以便后续拼接逻辑正常运作;最终输出结果指向指定层次结构中的祖先节点[^3]。 --- ### 总结 综上所述,对于简单的应用场景推荐优先采用 `%CD%` 来快速读取即时状态下的活动区域坐标点;而对于那些强调精确关联性的场合则更适合选用带有修饰符形式表达式的替代方案比如 `%~dp0` 加入必要的辅助指令完成整个流程链路构建过程从而达到预期效果。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值