免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 880 | 回复: 3

[文本处理] eof传递变量的问题 [复制链接]

论坛徽章:
0
发表于 2019-01-20 13:58 |显示全部楼层
代码:
v1="aaaa"
su - oracle << "EOF"
  v2="bbbb"
  echo $v1
  echo $v2
EOF

输出结果:

bbbb

问题:"EOF"如何将外部的变量传递进来

论坛徽章:
0
发表于 2019-01-21 21:25 |显示全部楼层
安装:

centos7及以上,安装powershell:
curl -o /etc/yum.repos.d/microsoft.repo  https://packages.microsoft.com/config/rhel/7/prod.repo
sudo yum remove -y powershell #删除旧版
sudo yum install -y powershell
pwsh -c 'mkdir -p "$env:HOME/.config/powershell" '
pwsh -c 'Add-Content  -Value "Set-PSReadlineOption -EditMode Windows" -LiteralPath $profile '
pwsh -c 'Add-Content  -Value "`nSubsystem powershell /usr/bin/pwsh -sshs -NoLogo -NoProfile" -LiteralPath /etc/ssh/sshd_config '



ubuntu1604:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo curl -o /etc/apt/sources.list.d/microsoft.list https://packages.microsoft.com/config/ubuntu/16.04/prod.list
sudo apt-get update
sudo apt-get remove -y powershell #删除旧版
sudo apt-get install -y powershell
pwsh -c 'mkdir  -p  "$env:HOME/.config/powershell" '
pwsh -c 'Add-Content  -Value "Set-PSReadlineOption -EditMode Windows" -LiteralPath $profile '
pwsh -c 'Add-Content  -Value "`nSubsystem powershell /usr/bin/pwsh -sshs -NoLogo -NoProfile" -LiteralPath /etc/ssh/sshd_config '
============================================
代码:

  1. $a = 1
  2. [scriptblock]$备份命令 =
  3. {
  4.         Get-Date
  5.         $b = $using:a + 2 #引用客户机变量,需要用$using:
  6. }

  7. $连接1 = New-PSSession -HostName aaaa@127.0.0.1   #手动输入密码或用-KeyFilePath 选项。还需要修改/etc/ssh/sshd_config
  8. invoke-command -ScriptBlock { $备份命令 } -Session $连接1
复制代码

==================================================
讲解:
两个用户本来就是隔离的,想要共享变量,应通过传值来实现。
powershell 两个用户,应使用“回环远程连接”,来建立两个链接。相当于runas。

shell我不知道,恐怕需要磁盘source xxx.sh 传值。当然,powershell也可以这样执行另一个ps1,或ini传值。

论坛徽章:
0
发表于 2019-01-24 10:05 |显示全部楼层
回复 2# 本友会机友会摄友会

如果去掉EOF的引号,外部变量就可以传进来,但内部定义的变量需要转义。我的目标是不想用转义。v1="aaaa"
su - oracle << EOF
  v2="bbbb"
  echo $v1
  echo \$v2
EOF


结果
aaaa
bbbb

论坛徽章:
0
发表于 2019-01-24 13:41 |显示全部楼层
为神马$v1 又不需要转义?
还是那句话,幺蛾子太多,要么搞3个脚本
脚本1
脚本2_oracle用户执行
脚本3_保存公共变量
,,,
要么学powershell for linux。

快使用ps1       哼哼哈嘿
现在练ps1      『强』『简』死你
ps1好能耐       win,linux不败
屠龙刀手中提    win,linux无敌
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

数据风云,十年变迁
DTCC 第十届中国数据库技术大会已启航!

2019年5月8日~5月10日,由IT168旗下ITPUB企业社区平台主办的第十届中国数据库技术大会(DTCC2019),将在北京隆重召开。大会将邀请百余位行业专家,就热点技术话题进行分享,是广大数据领域从业人士的又一次年度盛会和交流平台。与SACC2018类似,本届大会将采用“3+2”模式:3天传统技术演讲+2天深度主题培训。大会不仅提供超100场的主题演讲,还会提供连续2天的深度课程培训,深化数据领域的项目落地实践方案。
DTCC2019,一场值得期待的数据技术盛会,殷切地希望您报名参与!

活动入口>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP