linux - 如果文件名不包含系统程序名称(例如 "ls"和 "grep"),我需要编写一个 shell 脚本以使文件默认可执行

标签 linux shell

xprog(程序名称) 检查这是否是一个适合程序的名称,如果是,则启动编辑器并确保文件默认可执行。

不允许使用系统程序名称,如“ls” 使用“which”查看命令是否存在 检查返回码“$?” 触摸(程序) 使新的程序可执行 启动编辑器

测试

xprog grep - 被拒绝 xprog newprog - 好的,已创建,可执行,编辑器已启动

我对 shell 脚本非常陌生,如果我得到完整的答案,那么任何帮助都会非常感激,但任何建议都会对我有很大帮助。我已经寻找答案大约两个小时了,不幸的是我似乎找不到从哪里开始。以上是我要遵循的指南,我理解描述的内容,但我似乎找不到在 shell 脚本上实现它的方法。谢谢大家。

最佳答案

#!/bin/bash

for i; do
    type &>/dev/null "$i" || { chmod +x "$i"; $EDITOR "$i"; }
done

家庭作业/新手版本:

#!/bin/bash

for i in $@; do
    if which &>/dev/null "$i"; then
        true
    else
        chmod +x "$i"
        $EDITOR
    fi
done

总菜鸟版本:

#!/bin/bash

for i in $@; do
    which &>/dev/null "$i"
    if [[ $? == 0 ]]; then
        chmod +x "$i"
        $EDITOR
    fi
done

关于linux - 如果文件名不包含系统程序名称(例如 "ls"和 "grep"),我需要编写一个 shell 脚本以使文件默认可执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15010986/

相关文章:

linux - 口是心非+云文件

linux - 如何验证shell中命令的输出?

php - 在 PHP 中打开不属于 apache 的文件

linux - 使用带有配置文件的 ssh 命令在远程机器上执行 shell 脚本

linux - 如果编译器选项与以前使用的选项不同,则使目标过时

bash - 需要一个 shell 脚本来删除除 *.pdf 之外的所有文件

linux - 获取包含文件夹的名称

c - linux中ioctl函数集的目的是什么?

shell - 如何创建脚本以在 Tomcat 7 上自动重启 Web 应用程序

shell - 使用 shell 脚本在新的终端选项卡中打开程序