bash - 意外的标记“(”定义一个函数来替换 bash 中的别名
问题描述
我想将函数创建为与我的服务器同步文件的别名。但我得到这个错误
-bash: /home/kenan/.aliases: line 2: syntax error near unexpected token `('
-bash: /home/kenan/.aliases: line 2: `rsnos () {'
我的代码是;
#!/bin/bash
rsnos () {
local dest_server="dsp"
local source_path="/home/kenan/django/event_project/"
local dest_path="${dest_server}:/home/kenan/www"
local exclude_all="--exclude={'.git','env','secrets.json','.vscode','static','event_project/wsgi.py','manage.py'}"
local exc_gev="--exclude={'.git','env','.vscode'}"
local exc_gevs="--exclude={'.git','env','.vscode','static'}"
local log_rsync="--log-file /home/kenan/rsync.log"
rsync -e \"ssh\" -a ${exclude_all} ${source_path} ${dest_path} ${log_rsync} --stats
}
如果这不是做我正在做的事情的正确方法,你能提出更好的方法吗?
谢谢
解决方案
您已经有一个别名。我可以重现问题
alias rsnos='echo 123'
rsnos () {
-bash: syntax error near unexpected token `('
首先删除alias
with
unalias rsnos
当您从 aliassen 升级到函数时(不错的选择!),更改文件名。.alias
应该仅用于alias
定义。
推荐阅读
- python - 如何保持python程序运行直到它被用户和python文件处理关闭
- javascript - Vuejs API 缩进
- javascript - 如何将字体 URI 加载到 shadowDOM 中
- linkedin - LinkedIn EasyApply API (/v2/jobApplications) 返回 HTTP 500,serviceErrorCode:2003。这是什么意思?
- azure-devops - 代理池和部署池
- kubernetes - Helm 3 Kubernetes服务目录资源部署顺序
- android - F-Droid 发布失败。错误:在 repo 中找不到签名证书
- polymer - 加载 Vaadin/Polymer 自定义元素时出现问题(错误消息: (0 , $csb__dommodule.DomModule).import 不是函数)
- excel - 连接单元格(在循环中使用变量)并在 VBA 中保持填充颜色
- reactjs - 指定单选按钮的初始值