相关疑难解决方法(0)

tcsh 在命令替换中保留换行符 `...`

所以,我写了一个简单的脚本来将sh-styleexport key=value语句转换为csh-style setenv key valuefor docker-machine env

#!/bin/sh
docker-machine env | sed -e 's/export/setenv/' -e 's/=/ /' -e '$d'
echo '# eval `docker-machine env`'
Run Code Online (Sandbox Code Playgroud)

它产生以下输出

setenv DOCKER_TLS_VERIFY "1"
setenv DOCKER_HOST "tcp://<ipv4 address>:<port>"
setenv DOCKER_CERT_PATH "<HOME>/.docker/machine/machines/default"
setenv DOCKER_MACHINE_NAME "default"
# Run this command to configure your shell:
# eval `docker-machine env`
Run Code Online (Sandbox Code Playgroud)

在 my 中,.tcshrc我已将此脚本绑定到 alias docker-machine-env-csh

我可以使用临时变量来获取这个脚本的输出就好了

% docker-machine-env-csh >! /tmp/csh && source /tmp/csh
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法直接eval得到这个别名的结果

% eval `docker-machine-env-csh`
setenv: …
Run Code Online (Sandbox Code Playgroud)

tcsh command-substitution

3
推荐指数
1
解决办法
1822
查看次数

标签 统计

command-substitution ×1

tcsh ×1