将 bash 脚本压缩到一行
Compress bash script to one line
我正在尝试获取 GCP 区域信息,并基于该信息选择一个 GCS 存储桶以从中提取数据。脚本看起来像这样。
#!/bin/bash
set -xe
GCP_REGION=$(curl -sf -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/zone | cut -d/ -f 4 | sed 's/.\{2\}$//')
BUCKET_NAME="foo-bar-"
case $GCP_REGION in
us*) BUCKET_NAME+="us";;
asia*) BUCKET_NAME+="asia";;
europe*) BUCKET_NAME+="eu";;
*) echo -n "unknown GCP region"; exit 1;;
esac
echo -n $BUCKET_NAME
有没有办法把它压缩成一行语句?
摆脱 shebang,在每个 non-empty 行末尾添加一个 ;
,但不以 ;;
或 in
结尾,然后加入所有行在一起:
set -xe; GCP_REGION=$(curl -sf -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/zone | cut -d/ -f 4 | sed 's/.\{2\}$//'); BUCKET_NAME="foo-bar-"; case $GCP_REGION in us*) BUCKET_NAME+="us";; asia*) BUCKET_NAME+="asia";; europe*) BUCKET_NAME+="eu";; *) echo -n "unknown GCP region"; exit 1;; esac; echo -n $BUCKET_NAME;
我们不得不同意在“看起来整洁”方面存在分歧:-)。祝你好运!
我正在尝试获取 GCP 区域信息,并基于该信息选择一个 GCS 存储桶以从中提取数据。脚本看起来像这样。
#!/bin/bash
set -xe
GCP_REGION=$(curl -sf -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/zone | cut -d/ -f 4 | sed 's/.\{2\}$//')
BUCKET_NAME="foo-bar-"
case $GCP_REGION in
us*) BUCKET_NAME+="us";;
asia*) BUCKET_NAME+="asia";;
europe*) BUCKET_NAME+="eu";;
*) echo -n "unknown GCP region"; exit 1;;
esac
echo -n $BUCKET_NAME
有没有办法把它压缩成一行语句?
摆脱 shebang,在每个 non-empty 行末尾添加一个 ;
,但不以 ;;
或 in
结尾,然后加入所有行在一起:
set -xe; GCP_REGION=$(curl -sf -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/zone | cut -d/ -f 4 | sed 's/.\{2\}$//'); BUCKET_NAME="foo-bar-"; case $GCP_REGION in us*) BUCKET_NAME+="us";; asia*) BUCKET_NAME+="asia";; europe*) BUCKET_NAME+="eu";; *) echo -n "unknown GCP region"; exit 1;; esac; echo -n $BUCKET_NAME;
我们不得不同意在“看起来整洁”方面存在分歧:-)。祝你好运!