V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cx524541577
V2EX  ›  程序员

请教各位大佬一个 shell 的脚本相关问题

  •  
  •   cx524541577 · 2021-07-04 00:56:03 +08:00 · 1901 次点击
    这是一个创建于 1021 天前的主题,其中的信息可能已经有所发展或是发生改变。

    首先感谢各位大佬观看以及解答(鞠躬感谢各位大佬.jpg )

    其次阐述一下我的问题: (前提:非专业程序员『特小白的那种』,剪辑音频行当,想要写一个脚本替代重复工作)

    脚本功能如下: 1.获取文件名称 2.获取当前时间 3.时间+文件名称为文字 4.检查当前目录下是否有相同目录 5.如果没有则执行创建,如果有相同名称文件目录则提示后返回第一步操作 6.创建文件夹后打开该文件夹 7.在时间+文件名称目录下创建固定目录 8.结束进程

    代码如下:

    #!/bin/bash read -p "请输入工程名称:" name echo "$name" time="date +%Y%m%d" touch "${time}${name}"

    问题如下: 请问各位大佬为什么我的脚本代码在终端执行时执行到 echo "$name"就结束了? 这样创建变量文件夹不对吗? 请问有什么好的 shell 教程推荐吗?


    感谢各位大佬阅读及回复(不知道为什么排版有些混乱,烦请见谅)

    第 1 条附言  ·  2021-07-04 06:13:18 +08:00
    感谢各位大佬的回复以及解答,真心的表示感谢。谢谢( 90 度鞠躬感谢.jpg )
    11 条回复    2021-07-05 09:23:44 +08:00
    churchmice
        1
    churchmice  
       2021-07-04 01:04:06 +08:00 via Android   ❤️ 1
    创建文件夹用 mkdir
    toaruScar
        2
    toaruScar  
       2021-07-04 01:06:33 +08:00 via iPhone
    啊?不知道是不是排版的问题,不过多条塞到一行的时候要用分号隔开不同的命令
    toaruScar
        3
    toaruScar  
       2021-07-04 01:16:27 +08:00
    把命令的输出存到变量里的时候要么用
    var=$(command-name-here)
    var=$(command-name-here arg1)
    var=$(/path/to/command)
    var=$(/path/to/command arg1 arg2)
    要么用反引号(“`”)
    var=`command-name-here`
    var=`command-name-here arg1`
    var=`/path/to/command`
    var=`/path/to/command arg1 arg2`
    cx524541577
        4
    cx524541577  
    OP
       2021-07-04 01:26:00 +08:00
    @toaruScar 感谢大佬回复,echo 输出是因为测试,后期就不需要 echo 名称了,就直接时间+名称创建文件夹了
    鞠躬感谢回复!
    cx524541577
        5
    cx524541577  
    OP
       2021-07-04 01:27:41 +08:00
    @churchmice 感谢大佬回复,mkdir 提示这个( line 7: str1: command not found
    usage: mkdir [-pv] [-m mode] directory ...)什么问题呢,mkdir -pv $(str1)也不好使。感谢大佬回复
    #!/bin/bash
    read -p "请输入工程名称:" files
    echo $files
    time="`date +%Y%m%d`"
    str1="$time $name"
    mkdir $(str1)
    toaruScar
        6
    toaruScar  
       2021-07-04 01:40:03 +08:00   ❤️ 1
    @cx524541577 最后“mkdir $(str1)”里的 str1 为什么要用$(...) 包起来? str1 是变量又不是命令
    Fu4ng
        7
    Fu4ng  
       2021-07-04 01:40:22 +08:00   ❤️ 1
    #!/bin/bash
    read -p "请输入工程名称:" files
    echo $files
    time="`date +%Y%m%d`"
    str1="$time-$files"
    mkdir $str1
    cx524541577
        8
    cx524541577  
    OP
       2021-07-04 06:11:14 +08:00 via Android
    @Fu4ng
    感谢大佬回复!已完成目的,虽然没完全完成
    cx524541577
        9
    cx524541577  
    OP
       2021-07-04 06:11:29 +08:00 via Android
    @toaruScar 感谢大佬回复!已完成目的,虽然没完全完成
    cx524541577
        10
    cx524541577  
    OP
       2021-07-04 06:12:01 +08:00 via Android
    @churchmice 感谢大佬回复!已完成目的,虽然没完全完成
    sunls
        11
    sunls  
       2021-07-05 09:23:44 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2579 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 00:18 · PVG 08:18 · LAX 17:18 · JFK 20:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.