bash中参数的赋值与自定义指令问题

2025-05-14 00:30:42
推荐回答(1个)
回答1:

我猜你的意思可能是这样的 

  1. 自定义一个系统不存在的命令如: edit

  2. 这个命令的作用等同于:先用chmod 777 再用vi去打开文件去编辑

如果我说的意思是你的真实想法,那么请往下看:

你说的这种其实已经比较类似于自定义一个函数了,因为自定义的命令中包含了两个系统命令的整合效果,那么其实这种情况下用alias并不能很好的达到我想要的结果。但是通过脚本来自定义一个函数可以很好的解决,定义一个脚本名为 edit.sh内容如下:

#!/bin/bash
## define custum function - "edit"

function edit
{
if [ -z $1 ];then
        echo "Must input a filename!"
        exit 0
else
        chmod 777 $1 && vi $1
        exit 0
fi
}

edit $1

使用的时候先给这个脚本执行权限 chmod a+x edit.sh

然后./exit.sh /home/test 即可 

如果不想输入脚本的路径 请在系统的PATH中做一个软连接edit即可像一个系统命令一样运行