免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1033 | 回复: 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无敌
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

基于案例的 SQL 优化实战训练营

讲师:中电福富特级专家梁敬彬,参与本次课程培训,你将收获:
1. 能编写出较为高效的 SQL;
2. 能解决70%以上的数据库常见优化问题;
3. 能得到老师提供的高效的相关工具和解决方案;
4. 能举一反三,收获不仅仅是 SQL 优化。
现在购票享受8.8折优惠!
----------------------------------------
优惠时间:2019年3月20日前

大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP