忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 1599 | 回复: 7

[文本处理] 如何将有变量做为shell脚本参数的内容写入文件? [复制链接]

论坛徽章:
5
程序设计版块每日发帖之星
日期:2016-04-15 06:20:00每日论坛发贴之星
日期:2016-04-15 06:20:0015-16赛季CBA联赛之八一
日期:2016-07-08 09:20:28操作系统版块每日发帖之星
日期:2016-08-03 06:20:002016科比退役纪念章
日期:2016-10-30 13:59:12
发表于 2018-01-06 09:11 |显示全部楼层
我想将这一段文字内容:


*/5 * * * * /bin/bash /root/cron.change.sh "${id}" "super" &>/dev/null



加入到crontab定时任务执行计划中。${id}是一个变量,做为cron.change.sh脚本的第一个参数,而super做为cron.change.sh脚本的第二个参数



我应该如何来写,如果使用echo的话,因为要给这句话的整体加上""号,会与
"${id}"的双引号弄混,如下所示:


echo  "*/5 * * * * /bin/bash /root/cron.change.sh "${id}" "super" &>/dev/null"  >> /var/spool/cron/root

请问下有什么方法可以解决这个问题?

论坛徽章:
5
程序设计版块每日发帖之星
日期:2016-04-15 06:20:00每日论坛发贴之星
日期:2016-04-15 06:20:0015-16赛季CBA联赛之八一
日期:2016-07-08 09:20:28操作系统版块每日发帖之星
日期:2016-08-03 06:20:002016科比退役纪念章
日期:2016-10-30 13:59:12
发表于 2018-01-06 10:16 |显示全部楼层
自己回复一下,转义字符即可解决,刚才没有动脑思考。

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之同曦
日期:2017-09-11 14:39:482016科比退役纪念章
日期:2018-01-19 12:45:59CU十四周年纪念徽章
日期:2018-03-16 13:09:5315-16赛季CBA联赛之北京
日期:2018-03-23 15:24:0715-16赛季CBA联赛之辽宁
日期:2018-04-02 14:03:39
发表于 2018-01-06 15:00 |显示全部楼层

不需要转义:
  1. echo  "*/5 * * * * /bin/bash /root/cron.change.sh ${id} super &>/dev/null"  >> /var/spool/cron/root
复制代码

论坛徽章:
5
程序设计版块每日发帖之星
日期:2016-04-15 06:20:00每日论坛发贴之星
日期:2016-04-15 06:20:0015-16赛季CBA联赛之八一
日期:2016-07-08 09:20:28操作系统版块每日发帖之星
日期:2016-08-03 06:20:002016科比退役纪念章
日期:2016-10-30 13:59:12
发表于 2018-01-08 10:31 |显示全部楼层
回复 3# wh7211

谢谢了!

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之同曦
日期:2017-09-11 14:39:482016科比退役纪念章
日期:2018-01-19 12:45:59CU十四周年纪念徽章
日期:2018-03-16 13:09:5315-16赛季CBA联赛之北京
日期:2018-03-23 15:24:0715-16赛季CBA联赛之辽宁
日期:2018-04-02 14:03:39
发表于 2018-01-08 12:05 |显示全部楼层
本帖最后由 wh7211 于 2018-01-08 12:08 编辑

回复 4# 274920831


如果是把${id}(不做变量替换)写入文件,就要用下面的方法:
  1. echo  "*/5 * * * * /bin/bash /root/cron.change.sh \${id} super &>/dev/null"  >> /var/spool/cron/root
  2. echo  '*/5 * * * * /bin/bash /root/cron.change.sh ${id} super &>/dev/null'  >> /var/spool/cron/root
复制代码

论坛徽章:
0
发表于 2018-01-08 15:31 |显示全部楼层
本帖最后由 本友会机友会摄友会 于 2018-01-08 15:35 编辑

问题描述:如何用powershell管理crontab?

讲师:微软官方人员。

思路讲解:
视频位置:https://channel9.msdn.com/Blogs/ ... nux-and-Open-Source

源码位置:https://github.com/PowerShell/Po ... crontab/crontab.ps1
注意:例子从34:40秒开始。前后是powershell祖师爷对话。祖师爷在此镇楼;-)

你的问题的,我的解决方案
  1. $a = '第一个要传入的参数,类型任意'
  2. $b = 'super'
  3. Import-Module $PSScriptRoot/CronTab/CronTab.psd1
  4. New-CronJob -Command "/bin/bash /root/cron.change.sh $a $b" -minute */5
复制代码


问:目前哪些版本linux能安装上powershell?
答:
◦Windows 10 IoT Core(arm32的cpu,本质上是win,树莓派硬件上的win10)
◦Raspbian Stretch(arm32的cpu,树莓派官方操作系统Raspbian,基于大便,所以叫树莓便。)
◦MAC OS X 10.11
◦Ubuntu 14.04/16.04/17.04
◦Debian8.x/9.x
◦CentOS 7.x/RHEL 7.x/Fedora 25/Fedora 26
◦open SUSE 42及以上/SUSE Linux Enterprise Server 12 SP2
◦Docker。LINUX发行版中,安装容器dockerd,docker中运行powershell。
◦Arch Linux (archl inux 没有版本号)
◦Linux AppImage 容器(portable application single binary)  https://github.com/probonopd/AppImageKit

安装方法:
https://github.com/PowerShell/Po ... stallation/linux.md


论坛徽章:
0
发表于 2018-01-09 15:51 |显示全部楼层
efwfw fwefwf ewf

论坛徽章:
0
发表于 2018-01-09 15:52 |显示全部楼层
我的解决办法是,

crontab 写脚本  1.sh
=====================

1.sh

a=${id}
b=super
sh  tes.sh  $a $b
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP