linux bash bad substitution,shell 中bad substitution错误

2023-05-16

今天在学习linux写shell脚本的时候,碰到了一个bad substitution错误。

脚本的内容是输入一个文件名,创建出三个文件名+日期(今天,昨天,前天)的文件。

有错误的代码如下:

1 #!/bin/bash

2 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~bin

3 export PATH

4

5 echo "i will use touch command to create 3 files."

6 read -p "Please enter your filename:" fileuser

7

8 filename=${fileuser:-"filename"}

9

10 #use date to get filename

11 date1=${date --date='2 days ago' +%Y%m%d}

12 date2=${date --date='1 days ago' +%Y%m%d}

13 date3=${date +%Y%m%d}

14 file1=${filename}${date1}

15 file2=${filename}${date2}

16 file3=${filename}${date3}

17

18 touch "$file1"

19 touch "$file2"

20 touch "$file3"

后来跟书上一一对比,发现11-13行的{}应该是()

${}里放的是变量,$(commamd)里是执行command然后用它的输出代替$()。

比如data + %Y%m%d执行后是20170930,date3=$(data + %Y%m%d),执行后就是date3=20170930

修改后:

1 #!/bin/bash

2 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~bin

3 export PATH

4

5 echo "i will use touch command to create 3 files."

6 read -p "Please enter your filename:" fileuser

7

8 filename=${fileuser:-"filename"}

9

10 #use date to get filename

11 date1=$(date --date='2 days ago' +%Y%m%d)

12 date2=$(date --date='1 days ago' +%Y%m%d)

13 date3=$(date +%Y%m%d)

14 file1=${filename}${date1}

15 file2=${filename}${date2}

16 file3=${filename}${date3}

17

18 touch "$file1"

19 touch "$file2"

20 touch "$file3"

最后编辑:2020-02-16作者:搬运工

268c484bbdf4e3afc68e23b51d3ac5a7?s=96&d=mm&r=g

这个作者貌似有点懒,什么都没有留下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux bash bad substitution,shell 中bad substitution错误 的相关文章

  • 从 UNIX 命令行向串行端口发送字节?

    我想使用命令行将字节流发送到串行端口 这可能吗 我的串口位于 dev cu usbserial A700dYoR在我的 Mac 上 例如 如果我想将整数 50 或字符串 data 发送到该串行端口 我该怎么做 我对 UNIX 的了解非常有限
  • 使用 su 和 Expect 脚本登录用户时遇到问题

    我正在为一个班级制作一个网站 您可以使用用户名和密码登录 然后它会将您带到一个显示您在班级中的成绩的页面 该网站正在运行bash脚本 https github com jduga002 rapache 并将托管在用户已有用户名和密码登录的计
  • SSE:跨页边界的未对齐加载和存储

    我在页面边界旁边执行未对齐加载或存储之前读过某处 例如使用 mm loadu si128 mm storeu si128内在函数 代码应首先检查整个向量 在本例中为 16 个字节 是否属于同一页 如果不属于同一页 则切换到非向量指令 我知道
  • 多处理:仅使用物理核心?

    我有一个函数foo它消耗大量内存 我想并行运行多个实例 假设我有一个有 4 个物理核心的 CPU 每个核心有两个逻辑核心 我的系统有足够的内存来容纳 4 个实例foo并行但不是 8 个 此外 由于这 8 个核心中的 4 个是逻辑核心 我也不
  • 如何从我自己的脚本向 Fish shell 提供制表符补全?

    我运行的是 Ubuntu 13 10 和 Fish 2 1 0 我想自己编写一个 Python 脚本来从命令行执行一些任务 该脚本将需要命令行参数 我怎样才能编写我的脚本 以便 Fish 可以请求并获取给定参数的可能值 潜在值列表是动态的
  • 分叉/多线程进程|重击

    我想让我的代码的一部分更加高效 我正在考虑让它分叉成多个进程 并让它们一次执行 50 100 次 而不是只执行一次 例如 伪 for line in file do foo foo2 foo3 done 我希望这个 for 循环运行多次 我
  • 查找哪些页面不再与写入时复制共享

    假设我在 Linux 中有一个进程 我从中fork 另一个相同的过程 后forking 因为原始进程将开始写入内存 Linux写时复制机制将为进程提供与分叉进程使用的不同的唯一物理内存页 在执行的某个时刻 我如何知道原始进程的哪些页面已被写
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • 如何确保应用程序在 Linux 上持续运行

    我试图确保脚本在开发服务器上保持运行 它会整理统计数据并提供网络服务 因此它应该会持续存在 但一天中有几次 它会因未知原因而消失 当我们注意到时 我们只需再次启动它 但这很麻烦 并且某些用户没有权限 或专有技术 来启动它 作为一名程序员 我
  • Linux 上有关 getBounds() 和 setBounds() 的 bug_id=4806603 的解决方法?

    在 Linux 平台上 Frame getBounds 和 Frame setBounds 的工作方式不一致 这在 2003 年就已经有报道了 请参见此处 http bugs java com bugdatabase view bug do
  • 如何使用 GOPATH 的 Samba 服务器位置?

    我正在尝试将 GOPATH 设置为共享网络文件夹 当我进入 export GOPATH smb path to shared folder I get go GOPATH entry is relative must be absolute
  • 如何更改 Apache 服务器的根目录? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何更改 Apache 服务器的文档根目录 我基本上想要localhost从 来 users spencer projects目录而不是
  • BASH:将数据从平面文件导入模板

    我有一个平面记录文件 每行有 33 行 我需要将此文件格式化为模板中的规格 模板为 DOS 格式 源文件为 NIX 格式 该模板具有必须遵守的特定缩进和间距 我想到了几个选择 BASH 与经典的 nix 工具 sed awk grep 等
  • Gtk-ERROR **:检测到 GTK+ 2.x 符号

    我正在使用 gcc 编译我的 c 应用程序 并使用以下标志 gcc evis c pkg config cflags libs gtk 2 0 libs clutter gtk 1 0 libs gthread 2 0 Wall o evi
  • 我不明白 execlp() 在 Linux 中如何工作

    过去两天我一直在试图理解execlp 系统调用 但我还在这里 让我直奔主题 The man pageexeclp 将系统调用声明为int execlp const char file const char arg 与描述 execl exe
  • Linux - 从第二个选项卡获取文本

    假设我们有这样的文件 一些文本11 一些文本12 一些文本13 一些文本21 一些文本22 一些文本23 文本由制表符分隔 我们知道第 1 列中的一些文本 但希望从第 2 列中获取文本 我知道我可以通过以下方式获取线路 grep somet
  • 在两次之间每分钟执行一次 Cronjob

    我需要在 crontab 中每分钟运行一个 bash 脚本8 45am and 9 50am每天的 Code 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 8 home pull sh gt ho
  • 我如何知道 C 程序的可执行文件是在前台还是后台运行?

    在我的 C 程序中 我想知道我的可执行文件是否像这样在前台运行 a out 或者像这样 a out 如果你是前台工作 getpgrp tcgetpgrp STDOUT FILENO or STDIN FILENO or STDERR FIL
  • 进程退出后 POSIX 名称信号量不会释放

    我正在尝试使用 POSIX 命名信号量进行跨进程同步 我注意到进程死亡或退出后 信号量仍然被系统打开 在进程 打开它 死亡或退出后是否有办法使其关闭 释放 早期的讨论在这里 当将信号量递减至零的进程崩溃时 如何恢复信号量 https sta
  • 如何在c linux中收听特定接口上的广播?

    我目前可以通过执行以下操作来收听我编写的简单广播服务器 仅广播 hello int fd socket PF INET SOCK DGRAM 0 struct sockaddr in addr memset addr 0 sizeof ad

随机推荐

  • 域渗透基础之环境搭建(单域到组件域林)

    转发 xff1a https www e learn cn content qita 2484245 之前练习域渗透的环境被我弄丢了 重新搭建一个完整的域环境吧 域渗透的基础还是环境的搭建 xff0c 单域到域树再到域林 单域环境搭建 创建
  • React + TypeScript 实现泛型组件

    泛型类型 TypeScript 中 xff0c 类型 xff08 interface type xff09 是可以声明成泛型的 xff0c 这很常见 interface Props lt T gt content T 这表明 Props 接
  • python创建数组的方法

    一 直接定义法 xff1a 1 直接定义 span class hljs attribute matrix 61 span class hljs string 0 1 2 3 span span 2 间接定义 span class hljs
  • Typo: In word 拼写检查

    Settings gt Inspections gt Spelling gt Typo 评写检查 xff0c 转载于 https www cnblogs com nicknailo p 9140014 html
  • 关于Verilog中begin···end语句执行顺序

    Verilog中分阻塞赋值和非阻塞赋值两种 xff0c 组合逻辑多用阻塞赋值 xff0c 此时使用begin end语句 xff0c 将一条执行完再执行下一句 xff0c 即顺序执行 而时序逻辑多是并行执行 xff0c 多用非阻塞赋值 xf
  • xxxxxx

    Files jasenkin CultureSilverlightSample rar 转载于 https www cnblogs com jasenkin archive 2011 02 23 1961904 html
  • 设置elementUI的table组件滚动条位置

    1 设置table的ref为tableList 2 设置滚动至顶部 this refs tableList bodyWrapper scrollTop 61 0 3 设置滚动至底部 this refs tableList bodyWrapp
  • golang结构体数组

    转自 https www liaotaoo cn 200 html code package main import 34 fmt 34 type student struct id int name string score int fu
  • 2019清北学堂学习笔记

    暴力求解法 迭代加深搜 适用于搜索树深度不确定的时候 xff0c 可以使用迭代加深搜 步骤 xff1a 1 枚举maxd表示最深枚举深度 xff1b 2 假设当前深度为g n xff0c 乐观估计至少要h n 层才能到达叶子节点 xff0c
  • 日记-致我那易逝的时光

    9月 28日 第一次在机房里写日记 xff0c 踩着这几百块钱的电脑桌 xff1b 看着这几十块钱的显示屏 xff1b 敲着这几块钱的键盘 xff1b 烧着这几毛钱的 Central Processing Unit xff1b 捏着这几分钱
  • linux node安装教程

    官网下载 http nodejs cn 解压 tar xvf node v10 14 1 linux x64 tar gz mv node v10 14 1 linux x64 node 环境变量配置 vim etc profile exp
  • 洛谷P1230智力大冲浪 题解

    题目描述 小伟报名参加中央电视台的智力大冲浪节目 本次挑战赛吸引了众多参赛者 xff0c 主持人为了表彰大家的勇气 xff0c 先奖励每个参赛者m元 先不要太高兴 xff01 因为这些钱还不一定都是你的 xff1f xff01 接下来主持人
  • 根据hash值找到bt种子的磁力下载链

    根据hash值找到bt种子的磁力下载链 画皮2 hash E5757D533B3690774519E6A80021E43C03A58C0B 磁力 下载链接 如下 xff1a magnet xt 61 urn btih E5757D533B3
  • 操作系统中的P-V操作(转)

    信号量是最早出现的用来解决进程同步与互斥问题的机制 也可实现进程通信 xff0c 包括一个称为信号量的变量及对它进行的两个原语操作 信号量为一个整数 xff0c 我们设这个信号量为 xff1a sem 很显然 xff0c 我们规定在sem大
  • Linux使用storcli工具查看服务器硬盘和raid组信息

    1 简介 MegaCli 是LSI公司官方提供的SCSI卡管理工具 xff0c 由于LSI被收购变成了现在的Broadcom xff0c 所以现在想下载MegaCli xff0c 需要去Broadcom官网查找Legacy产品支持 xff0
  • 四元数运动学笔记(5)IMU驱动的运动误差方程

    1 扩展卡尔曼滤波EKF 1 1线性化卡尔曼滤波 1 2偏差微分方程的推导 1 3线性化卡尔曼滤波的流程 1 4 离散EKF 2 误差状态的运动方程 2 1连续时间的IMU系统动态方程 2 1 1相关变量 2 1 2真实状态运动方程 tru
  • 静态分析:IDA逆向代码段说明 text、idata、rdata、data

    通常IDA对一个PE文件逆向出来的代码中 xff0c 存在四个最基本的段text idata rdata data xff0c 四个段为PE文件的结构中对应的段 一 text段 xff1a 该段位程序代码段 xff0c 在该段一开始就可以看
  • web前端——html基础笔记 NO.14{颜色值,长度值}

    颜色值 在网页中的颜色设置是非常重要 xff0c 有字体颜色 xff08 color xff09 背景颜色 xff08 background color xff09 边框颜色 xff08 border xff09 等 xff0c 设置颜色的
  • 无人机行业的机遇与挑战

    无人机行业是现如今正在蓬勃发展的一个行业 xff0c 现在已经成为了一个比较成熟的行业 xff0c 且无人机在如今的作用也是无比重要的 xff0c 它已经成功的应用在包括军用民用等各个方面了 这一次我们就来探索一下 xff0c 无人机在未来
  • linux bash bad substitution,shell 中bad substitution错误

    今天在学习linux写shell脚本的时候 xff0c 碰到了一个bad substitution错误 脚本的内容是输入一个文件名 xff0c 创建出三个文件名 43 日期 今天 xff0c 昨天 xff0c 前天 的文件 有错误的代码如下